小编Ale*_*lov的帖子

类似Fortran的数组,如Julia中的FArray(Float64,-1:1,-7:7,-128:512)

一般来说,Julia的基于1的数组是一个很好的决定,但有时候希望有类似Fortran的数组,其索引跨越some的某些子范围:

julia> x = FArray(Float64, -1:1,-7:7,-128:512)
Run Code Online (Sandbox Code Playgroud)

哪里有用:

在教程中伴随着"双曲偏微分方程的数值解"一书的代码中.John A. Trangenstein这些负指数被强烈用于鬼细胞的边界条件.对于Clawpack(代表"保护法律包"),教授也是如此.Randall J. LeVeque  http://depts.washington.edu/clawpack/  还有许多其他代码,这些指数很自然.因此,这种辅助类对于快速翻译这些代码是有用的.

我刚开始实施这样一种辅助类型,但由于我对Julia很新,所以我非常感谢你的帮助.

我开始时:

type FArray
    ranges
    array::Array
    function FArray(T, r::Range1{Int}...)
        dims = map((x) -> length(x), r)
        array = Array(T, dims)
        new(r, array)
    end
end
Run Code Online (Sandbox Code Playgroud)

输出:

julia> include ("FortranArray.jl")
julia> x = FArray(Float64, -1:1,-7:7,-128:512)
FArray((-1:1,-7:7,-128:512),3x15x641 Array{Float64,3}:
[:, :, 1] =
6.90321e-310  2.6821e-316   1.96042e-316  0.0  0.0  0.0  9.84474e-317  …  1.83233e-316  2.63285e-316  0.0           9.61618e-317  0.0        
6.90321e-310  6.32404e-322  2.63285e-316  0.0  0.0  0.0  2.63292e-316     2.67975e-316
...
[:, :, 2] =
...
Run Code Online (Sandbox Code Playgroud)

因为我对朱莉娅来说是全新的,所以任何能够提高效率的建议都会受到高度赞赏. …

arrays julia

12
推荐指数
1
解决办法
536
查看次数

标签 统计

arrays ×1

julia ×1