# Namespace: matrixmath

## Numbas.matrixmath

Matrix operations.

These operations are very lax about the dimensions of vectors - they stick zeros in when pairs of matrices don't line up exactly.

Source:

### Methods

#### (static) abs(m) → {number}

Matrix determinant. Only works up to 3x3 matrices.

##### Parameters:
Name Type Description
`m` matrix
##### Throws:

"matrixmath.abs.too big" if the matrix has more than 3 rows.

Type
Numbas.Error
Type Description
number
Source:

#### (static) add(a, b) → {matrix}

##### Parameters:
Name Type Description
`a` matrix
`b` matrix
Type Description
matrix
Source:

#### (static) combine_diagonally(m1, m2) → {matrix}

Combine two matrices diagonally.

##### Parameters:
Name Type Description
`m1` matrix
`m2` matrix
Type Description
matrix
Source:

#### (static) combine_horizontally(m1, m2) → {matrix}

Combine two matrices horizontally.

##### Parameters:
Name Type Description
`m1` matrix
`m2` matrix
Type Description
matrix
Source:

#### (static) combine_vertically(m1, m2) → {matrix}

Combine two matrices vertically.

##### Parameters:
Name Type Description
`m1` matrix
`m2` matrix
Type Description
matrix
Source:

#### (static) eq(a, b) → {boolean}

Are two matrices equal? True if each pair of corresponding elements is equal.

##### Parameters:
Name Type Description
`a` matrix
`b` matrix
Type Description
boolean
Source:

#### (static) gauss_jordan_elimination(m) → {matrix}

Perform Gauss-Jordan elimination on a copy of the given matrix.

##### Parameters:
Name Type Description
`m` matrix
Type Description
matrix
Source:

#### (static) id(n) → {matrix}

Make an `NxN` identity matrix.

##### Parameters:
Name Type Description
`n` number
Type Description
matrix
Source:

#### (static) inverse(m) → {matrix}

Find the inverse of the given square matrix.

##### Parameters:
Name Type Description
`m` matrix
Type Description
matrix
Source:

#### (static) lu_decomposition(m) → {Array.<matrix>}

LU decomposition: decompose a square matrix m into a lower-triangular matrix L and upper-triangular matrix U, satisfying `m = L*U`.

##### Parameters:
Name Type Description
`m` matrix
Type Description
Array.<matrix>
Source:

#### (static) map(m, fn) → {matrix}

Apply given function to each element.

##### Parameters:
Name Type Description
`m` matrix
`fn` function
Type Description
matrix
Source:

#### (static) mul(a, b) → {matrix}

Multiply two matrices.

##### Parameters:
Name Type Description
`a` matrix
`b` matrix
##### Throws:

"matrixmath.mul.different sizes" if `a` doesn't have as many columns as `b` has rows.

Type
Numbas.Error
Type Description
matrix
Source:

#### (static) negate(m) → {matrix}

Negate a matrix - negate each of its elements .

##### Parameters:
Name Type Description
`m` matrix
Type Description
matrix
Source:

#### (static) neq(a, b) → {boolean}

Are two matrices unequal?

##### Parameters:
Name Type Description
`a` matrix
`b` matrix
Type Description
boolean
Source:
See:

#### (static) numcolumns(m) → {number}

Returns number of columns in a matrix.

##### Parameters:
Name Type Description
`m` matrix
Type Description
number
Source:

#### (static) numrows(m) → {number}

Returns number of row in a matrix.

##### Parameters:
Name Type Description
`m` matrix
Type Description
number
Source:

#### (static) precround(m, dp) → {matrix}

Round each element to given number of decimal places.

##### Parameters:
Name Type Description
`m` matrix
`dp` number

Number of decimal places.

Type Description
matrix
Source:

#### (static) scalardiv(m, k) → {matrix}

Divide a matrix by a scalar.

##### Parameters:
Name Type Description
`m` matrix
`k` number
Type Description
matrix
Source:

#### (static) scalarmul(k, m) → {matrix}

Multiply a matrix by a scalar.

##### Parameters:
Name Type Description
`k` number
`m` matrix
Type Description
matrix
Source:

#### (static) siground(m, sf) → {matrix}

Round each element to given number of significant figures.

##### Parameters:
Name Type Description
`m` matrix
`sf` number

Number of decimal places.

Type Description
matrix
Source:

#### (static) sub(a, b) → {matrix}

Subtract one matrix from another.

##### Parameters:
Name Type Description
`a` matrix
`b` matrix
Type Description
matrix
Source:

#### (static) sum_cells(m) → {number}

Sum of every cell.

##### Parameters:
Name Type Description
`m` matrix
Type Description
number
Source:

#### (static) transpose(m) → {matrix}

Matrix transpose.

##### Parameters:
Name Type Description
`m` matrix
Type Description
matrix
Source: