如何在 Julia 中定义非 1 或任意索引数组?

CRq*_*tum 3 julia

我知道在 Julia 中,数组的索引从 1 开始。就像

b = Array{Float64, 1}(undef, 10)
Run Code Online (Sandbox Code Playgroud)

这个数组 b 是一个有 10 个元素的一维数组。b 的索引从 1 开始。

但是,我想要一个索引为 0 或任何整数的数组,如何在 Julia 中做到这一点?

说,我想要索引范围从 0 到 9,我试着做这样的事情

b = Array{Float64, 1}(undef, 0:9)
Run Code Online (Sandbox Code Playgroud)

但显然它在 Julia 中不起作用。

Julia 能否像 Fortran 一样轻松定义具有任意索引范围的数组?我用谷歌搜索了一下,在 Julia 中这样做似乎并不容易,我错过了什么吗?

Julia 中是否有定义任意索引数组的通用方法?还是我必须安装像 OffsetArrays 这样的软件包?Julia 不能泛泛地定义任意索引数组,这似乎不太好。

谢谢!

cbk*_*cbk 6

在 Julia 中,这是由OffsetArrays包提供的。试试,例如

using OffsetArrays
A = rand(10)
OA = OffsetArray(A, 0:9)
OA[0]
Run Code Online (Sandbox Code Playgroud)

然后

julia> OA[0]
0.26079620656304203
Run Code Online (Sandbox Code Playgroud)