假设我有4x4多维数组A:
A = collect(reshape(1:16, 4, 4))
4×4 Array{Int64,2}:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
我希望逐行迭代(首先是[1, 5, 9, 13]
,然后是[2, 6, 10, 14]
,然后是......)。
我该怎么办?现在我想出了以下内容:
`for row in 1:size(A, 1)
println(A[row, :])
# do something
end`
但我想知道是否还有更多" pythonic"这样做的方式:有点for line in A: for element in line: ...
。
我也知道CartesianRange,但我想在每次迭代时使用类似数组的行。
答案 0 :(得分:5)
为了提高知名度:如今(朱莉娅> 1.1)使用“ eachrow”
for row in eachrow(A)
println(row)
end
答案 1 :(得分:1)
因为Julia中的数组是以列为主的,所以只需转置矩阵(A'
)然后迭代它就可以更明智/更高效,如果你想做很多事情的话。行。
答案 2 :(得分:1)
这种事情的一个非常好的包是JuliennedArrays。