2016-08-09 6 views
3

Juliaでは、;を使用して2次元配列を作成することができます。Juliaで3次元配列を作成する

julia> [1 2; 3 4] 
2x2 Array{Int64,2}: 
1 2 
3 4 

同様の構文を使用して3次元(またはそれ以上の次元)のアレイを作成することはできますか?以下の作品は、私はクリーナー、良い方法があるかどうかは不明です。

julia> reshape(collect(1:8), 2, 2, 2) 
2x2x2 Array{Int64,3}: 
[:, :, 1] = 
1 3 
2 4 

[:, :, 2] = 
5 7 
6 8 

答えて

8

私は例えば、クリーンマニュアル構文はcatコマンドであるとします。この作品

cat(3, [1 2 ;3 4], [5 6 ; 7 8]); % concatenate along the 3rd dimension 
+3

'zcat(args ...)= cat(3、args ...)'を定義すると、おそらく 'zcat([1 2; 3 4]、[5 6; 7 8])'はクリーン/クリア。 –

+3

@DanGetzもう少し行くと、以下のような利用可能なバイナリインフィックス演算子の1つを使用することができます: 'const ++ = zcat; [1 2; 3 4] ++ [5 6; 7 8] ++ [9 10; 11 12]とする。 – SalchiPapa

4

あなたはリストの理解が欲しいと思いますか?これにより、より複雑な配列を作成する際の作業が容易になります。以下のような

何か:

[x+1 for x=1:first, y=1:second, z=1:third] 

x+1によって移入first X second X third次元配列を与えるだろう。

は、より多くの情報のためhttp://docs.julialang.org/en/release-0.4/manual/arrays/#comprehensionsを参照してください:)

+0

が、3Dのための具体的な構文があった場合、私は思っていましたすべての値が与えられた場合、配列の作成。 2D配列の場合、 '[1 2; ([1 3 2 4]、2、2) 'の代わりに) - 3D +配列で動作するように構文を拡張する方法はありますか? – 2Cubed

+3

2 x 2 x 2より大きい何かのためには面倒で、形状変更の使い易さから、実際には必要ありません。 –

関連する問題