# Matrices in GEL

Genius has support for vectors and matrices and a sizable library of matrix manipulation and linear algebra functions.

# Entering Matrices

To enter matrixes, you can use one of the following two syntaxes. You can either enter the matrix on one line, separating values by commas and rows by semicolons. Or you can enter each row on one line, separating values by commas. You can also just combine the two methods. So to enter a 3x3 matrix of numbers 1-9 you could do

 ```[1,2,3;4,5,6;7,8,9] ```
or
 ```[1, 2, 3 4, 5, 6 7, 8, 9] ```
Do not use both ';' and return at once on the same line though.

You can also use the matrix expansion functionality to enter matricies. For example you can do:

 ```a = [ 1, 2, 3 4, 5, 6 7, 8, 9] b = [ a, 10 11, 12] ```
and you should get
 ```[1, 2, 3, 10 4, 5, 6, 10 7, 8, 9, 10 11, 11, 11, 12] ```
similiarly you can build matricies out of vectors and other stuff like that.

Another thing is that non-specified spots are initialized to 0, so

 ```[1, 2, 3 4, 5 6] ```
will end up being
 ``` [1, 2, 3 4, 5, 0 6, 0, 0] ```

When matrices are evaluated, they are evaluated and traversed row-wise. This is just like the M@(j) operator which traverses the matrix row-wise.

 Be careful about using returns for expressions inside the [ ] brackets, as they have a slightly different meaning there. You will start a new row.