Matrices

A matrix is a two-dimensional table of floating point values.

To declare a matrix, use the matrix keyword and the variable name, followed by the number of rows and columns in the matrix:

matrix $a3[2][3];

This creates a matrix with 2 rows of 3 columns, and assigns it to variable $a3. Each element of the matrix is initially filled with zeros.

Variables cannot be used to set the number of rows or columns in the matrix.

Unlike arrays, you must specify the size of a matrix when you create it:

matrix $a2[][]; // ERROR: Size not specified

Literal representation

The literal representation of a matrix is a series of values separated by commas representing rows, with rows separated by semicolons. The values are surrounded by << and >>:

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>>

Any difference between the size you specify and the literal matrix you assign is filled with zeros.

Even when you assign a literal matrix to a variable, you must still specify the size of the matrix:

matrix $a1[][] = <<1; 4>>; // ERROR: Size not specified

Getting and setting matrix values

Setting an element of a matrix is similar to setting an element in an array. Remember that the first index specifies the row and the second index specifies the column.

matrix $a3[4][2];
$a3[1][0] = 9;

Unlike arrays, you cannot expand the size of a matrix. If you try to set a value outside the range of the matrix MEL will signal an error:

$a3[0][1] = 7; // ERROR: Element doesn’t exist