16.8 配列 (Arrays)

配列は、ユーザ変数の添字付きリストとして実装されています。一つの配列の 要素は、一つの変数型には限定されていません。配列は、参照する前に明示的 に作られていなければいけません。配列を作成した後で、そのサイズを変更す ることはできません。すべての要素は、最初は未定義 (undefined) です。ほ とんどの場面で、名前付きユーザ変数の代わりに配列要素を利用できます。

配列 A の要素数は、数式 |A| で取得できます。

例:

    array A[6]
    A[1] = 1
    A[2] = 2.0
    A[3] = {3.0, 3.0}
    A[4] = "four"
    A[6] = A[2]**3
    array B[6] = [ 1, 2.0, A[3], "four", , B[2]**3 ]


    do for [i=1:6] { print A[i], B[i] }
        1 1
        2.0 2.0
        {3.0, 3.0} {3.0, 3.0}
        four four
        <undefined> <undefined>
        8.0 8.0

注意: 配列と変数は、同じ名前空間を共有します。例えば、あらかじめ FOO という名前の配列がある場合、FOO という名前の文字列変数を使うと、配列 を破壊します。

配列の名前を plot, splot, fit, stats コマンドに与えることもで きます。その場合、配列の添字がファイルの 1 列目の値で (1 から size ま で)、その値 A[i] の実数部分 real(A[i]) がファイルの 2 列目、虚数部分 imag(A[i]) がファイルの 3 列目であるようなデータファイルを与えたことと 同等になります。

例:

    array A[200]
    do for [i=1:200] { A[i] = sin(i * pi/100.) }
    plot A title "sin(x) in centiradians"

ただし、plot 時に複素数値配列の虚数部分を描画したい場合、その値は imag(A[$1]) かまたは $3 として参照できます。よって以下の 2 つのコマンドは同等です。


    plot A using (real(A[$1])) : (imag(A[$1]))
    plot A using 2:3

竹野茂治@新潟工科大学
2021-06-08