Julia:如何在多维数组中逐行迭代

时间:2017-10-30 16:33:08

标签: arrays multidimensional-array iteration julia

假设我有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,但我想在每次迭代时使用类似数组的行。

3 个答案:

答案 0 :(得分:5)

为了提高知名度:如今(朱莉娅> 1.1)使用“ eachrow”

for row in eachrow(A)
    println(row)
end

答案 1 :(得分:1)

因为Julia中的数组是以列为主的,所以只需转置矩阵(A')然后迭代它就可以更明智/更高效,如果你想做很多事情的话。行。

答案 2 :(得分:1)

这种事情的一个非常好的包是JuliennedArrays