我曾多次看到有人希望将两个 for 循环放在彼此嵌套的同一行上的情况。
只是为了确认一下,这在 Julia 中是否可行,如果可以,它看起来像什么?谢谢!
Dav*_*ela 13
正确,Julia 允许您简洁地表达嵌套for循环。
例如,考虑按列顺序填充 3x3 矩阵:
julia> xs = zeros(3,3)
3×3 Array{Float64,2}:
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
julia> let a = 1
for j in 1:3, i in 1:3
xs[i,j] = a
a += 1
end
end
julia> xs
3×3 Array{Float64,2}:
1.0 4.0 7.0
2.0 5.0 8.0
3.0 6.0 9.0
Run Code Online (Sandbox Code Playgroud)
上面的循环相当于这个更详细的版本:
julia> let a = 1
for j in 1:3
for i in 1:3
xs[i,j] = a
a += 1
end
end
end
Run Code Online (Sandbox Code Playgroud)
这种语法甚至支持更高维度(!):
julia> for k in 1:3, j in 1:3, i in 1:3
@show (i, j, k)
end
Run Code Online (Sandbox Code Playgroud)