2017-10-30 23 views
1

に行ごとに反復する私は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 

を、私は、その後、[2, 6, 10, 14]その後、すなわち[1, 5, 9, 13]は、最初の(行ごとに反復したいです.. )。

どうすればよいですか?

`for row in 1:size(A, 1) 
    println(A[row, :]) 
    # do something 
end` 

が、それを行うための、より「神託」道があった場合、私は思っていた:今の私は、次のように出ているfor line in A: for element in line: ...の種類が。

私はCartesianRangeについても知っていますが、各繰り返しで動作する配列のような行が必要です。

+1

この質問は関連性があります。https://stackoverflow.com/questions/21778374/what-is-the-commcommended-way-to-iterate-a-matrix-over-rows –

+1

[行間の行列を繰り返すための推奨される方法?](https://stackoverflow.com/questions/21778374/what-is-the-recommended-way-to-iterate-a-matrix-overrows) –

+1

あなたのPSは '私はそれを分けて、行ごとの質問から独立して質問しました。 –

答えて

1

Juliaの配列はカラムメジャーに格納されているので、行列を転置して行ごとにたくさんのことをしたい場合は、それを繰り返します。

+0

しかし、一度転置されたら、私はどのように私が望む動作を得るのですか?私は提案された複写物を見て、唯一の方法はスライスすることです。私はPythonのように "行"を得ていません – Pigna

+1

列主行列を作成したら、ビューを使うこともできます。 –

+1

次の2つの問題は、 '行内の行(A)'を有効にする 'rows'関数を求めています。https://github.com/JuliaLang/julia/issues/14491とhttps://github.com/JuliaCollections/IterTools .jl/issues/11 – gggg

1

この種類のもののための非常に素晴らしいパッケージはJuliennedArraysです。