Array というものがある。 行列とみなすと良い。
どうやって記述するか。かっことして [ ] を用いる。 次の列に進むには、単にスペースを入れる。 次の行に進むには、, を1つ入れるか、 ; または改行を1つ以上入れる。
julia> a1=[1 2 3 4] julia> a2=[1 2; 3 4] julia> a3=[1 2; 3 4] julia> a4=[1 2;; 3 4] julia> a5=[1 2, 3 4] 2×2 Array{Int64,2}: 1 2 3 4(a1からa5まで、皆同じ) |
(MATLAB と似ているが、カンマ , の扱いが違う。 MATLABではスペースと同じだ。 Julia では , を使わないことにしようかな。)
Array は、-element Array という。 次元縦ベクトルとみなすと良い。
次はどれも同じ。 の要素と考えよう。 , も ; も改行も、行列の次の行に進むという意味になる。
julia> v1=[1,2,3] julia> v2=[1;2;3] julia> v3=[1 2 3] 3-element Array{Int64,1}: 1 2 3 |
Array (-element Array) はスカラーではない。 (これは MATLAB とは異なるところ。) スカラーが [ ] で括られたもの、というイメージで良い。 5 と [5] は違う。
julia> a=5 5 julia> A=[a] 1-element Array{Int64,1}: 5 |
例えば、どちらも足せるけれど、混ぜて足すことは出来ない。
julia> 1+2 3 julia> [1]+[2] 1-element Array{Int64,1}: 3 julia> [1]+2 エラーになる。MATLAB だったら 3 になるんだけど。 |
Array と Array は行列としてかけることが出来る。 (もう少し詳しく言うと) Array と Array の積は Array になる。
もちろん行列とベクトルの積はベクトルである。 (もう少し詳しく言うと) Array と Array の積は Array (-element Array) である。