行列とは、浮動小数点数の 2 次元テーブルです。
行列を宣言するには、matrix キーワードと変数名を使用し、その後に行列の行と列の番号を付記します。
matrix $a3[2][3];
この文では、2 行 3 列の行列が作成され、変数 $a3 に代入されます。行列の各要素の初期値は 0 です。
配列とは異なり、行列を作成する際にはそのサイズを指定する必要があります。
matrix $a2[][]; // ERROR: Size not specified
行列のリテラル表現は、値をカンマで区切って並べて行を表し、各行はセミコロンで区切ります。また、値は << と >> で囲みます。
matrix $a3[3][4] = <<2.5, 4.5, 3.25, 8.05; 1.12, 1.3, 9.5, 5.2; 7.23, 6.006, 2.34, 4.67>>
代入するリテラル表現の行列が指定したサイズと異なる場合には 0 が代入されます。
リテラル表現の行列を代入する場合でも、行列のサイズは指定しなければなりません。
matrix $a1[][] = <<1; 4>>; // ERROR: Size not specified
行列の要素を設定するのは、配列で要素を設定するのと同じです。1 番目のインデックスで行を指定し、2 番目のインデックスで列を指定します。
matrix $a3[4][2]; $a3[1][0] = 9;
配列とは異なり、行列のサイズを拡大することはできません。行列の範囲外の値を代入しようとすると、MEL はエラーを表示します。
$a3[0][1] = 7; // ERROR: Element doesn’t exist