Tom*_*Tom 5 arrays indexing julia
我想以循环方式访问数组中的元素。通常模数就足够了,但在 Julia 数组中从 1 开始。目前我基本上将索引转换为基于 0 的索引并返回。但这不适用于负指数。
A = 1:5
for i in -6:6
println(i, " -> ", ((i - 1) % length(A)) + 1)
end
Run Code Online (Sandbox Code Playgroud)
输出
-6 -> -1 # wrong
-5 -> 0 # wrong
-4 -> 1 # wrong
-3 -> -3 # wrong
-2 -> -2 # wrong
-1 -> -1 # wrong
0 -> 0 # wrong
1 -> 1
2 -> 2
3 -> 3
4 -> 4
5 -> 5
6 -> 1
Run Code Online (Sandbox Code Playgroud)
我通常mod1为此使用函数。下面是一个例子:
julia> [-10:10 mod1.(-10:10, 5)]
21×2 Array{Int64,2}:
-10 5
-9 1
-8 2
-7 3
-6 4
-5 5
-4 1
-3 2
-2 3
-1 4
0 5
1 1
2 2
3 3
4 4
5 5
6 1
7 2
8 3
9 4
10 5
Run Code Online (Sandbox Code Playgroud)