10.2 Array (配列)

Julia にも当然配列はある。

配列変数の宣言(定義)法については学ぶ必要がある。

Julia における変数の扱いについて、 私は次のように理解している。 現代的な C 言語のようなプログラミング言語では、 変数はどこででも宣言できるという文法で、 変数は使うときは初期化が必要 (そうせずに参照しようとしていると、コンパイラーが警告を発する)、 というようになっている。そうだとすると、 変数が必要になった場所で、 変数に適当な値を代入することで変数を定義する、 というやり方も考えられて、それが Julia でのやり方である。 ところで配列については、そのやり方が通用しにくい。 配列全体の値を一つの式で表すことが出来ず、 要素の値を設定するためにループを使ったりすることが多い。 MATLAB などでは、とりあえずサイズを決めるために、零行列を代入しておいて、 それから値の設定をしていったりする。 その場合、最初に配列を0クリアするのは、無駄な作業とも言える。 Julia では、配列についてはきちんとした宣言・定義の仕方が用意されている。

詳しくはマニュアル https://docs.julialang.org/en/v1/base/arrays/を見てもらうとして、簡単な例をしめす。
初期化しない配列
   a1=Array{Float64,2}(undef,5,4)
   a2=Array{Float64}(undef,5,4)
どちらも成分の型が Float64 の2次元配列で、 “各次元”の長さが 5, 4であるものを定義している。 次元である 2 は省略可能ということだ。

成分が全て0、全て1の配列
   a3=zeros(Float64,3,3)
   a4=ones(ComplexF64, 2, 3)

例えば、零行列と言っても、 要素の型が整数なのか、浮動小数点数なのか、 複素数か (その実部・虚部は整数なのか浮動小数点数なのか)、 色々ありうることに注意しよう。



桂田 祐史