# Chapter 8. Matrices in GEL

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

## Entering Matrices

To enter matrices, 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 matrices. 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]
```

similarly you can build matrices 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.

### Note

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