# MatrixOperations

## MatrixGain

This block computes the matrix product of the block Gain parameter with the block input. A block parameter specifies whether the product is a left, right or element-wise multiplication. The inputs and the outputs must have the same datatype. In case of integer datatypes, a block parameter specifies the behavior of the block on overflow.

## MatrixMultiplication

This block computes the matrix multiplication or division of input matrices. For the multiplication, regular matrix multiplication size rules apply: the number of rows of a matrix must be equal to the number of columns of the next matrix. For the division, the matrix must be square. This block supports all the integer, real and complex data types.

## Transpose

This block outputs the transpose of its input matrix. In case of a complex input, the output is the conjugate transpose of its input.

## MatrixInverse

This block outputs the inverse of a square input matrix using the LU factorization.

## MatrixDivision

This block performs the right or left matrix division.

## MatrixReshape

This block produces an output matrix by reshaping its input matrix. The dimensions, not the contents, of the matrix are modified. A block parameter is used to specify the output dimensions.

## MaxElements

This blocks computes the max of the element of an input matrix/vector. Based on the Max Along parameter, the output is either a scalar, a row vector or a column vector.

## MinElements

This block computes the min of the element of an input matrix/vector. Based on the Min Along parameter, the output is either a scalar, a row vector or a column vector.

## SumElements

This blocks computes the sum of the element of an input matrix/vector. Based on the Sum Along parameter, the output is either a scalar, a row vector or a column vector.

## CumulativeSum

This block sums the element of an input M-by-N matrix along the rows, columns or first non-singleton dimension. When the "Sum by" parameter is set to "Rows", the block sums across the elements of each row. The result is displayed as an M-by-1 matrix. When the "Sum by" parameter is set to "Columns", the block sums across the elements of each column, and the result is displayed as a 1-by-N matrix.

## Assignment

Assigns value(s) to specified element(s) of the input matrix.

## MatrixExtractor

Select elements of an input matrix.

## DiagonalMatrix

This block creates a diagonal matrix from a 1D vector. If the length of the input vector is M then the output is an M-by-M matrix.

## MatrixConcatenation

This block outputs the horizontal or vertical concatenation of multiple matrices.

## Determinant

This block outputs the determinant of a square input matrix.

## MatrixExponential

This block outputs the matrix exponential of a square matrix input by the padeapos;s approximants. The output is a square matrix with the same size as the input.

## MatrixNorm

This block computes the norm of its input matrix.

## MatrixExpression

The output of this block is a matrix obtained by evaluating the matrix expression specified as a block parameter. The expression specifies the output in terms of input matrices u1,...un where ui is the ith matrix input (except if using custom input names), matrix parameters (defined in the context of the diagram), and constants. Only real matrices are supported.

## ZeroToCoef

This block outputs a vector. The entries of the vector correspond to the coefficients of a polynomial that is defined by its roots. Its roots are specified by the entries of the block's unique input vector. The size of the output vector is the size of the input vector plus one. The leading coefficient of the polynomial is one.

## MatrixPseudoInverse

This block outputs the inverse of a non square input matrix using the SVD (Singular Value Decomposition) operation. When the input is an M-by-N matrix, the output is an N-by-M matrix.

## TriDiagExtraction

This block extracts some elements from the input matrix u. When the quot;Extraction typequot; is set to quot;lowerquot;, it copies lower triangular elements to the output matrix of the same size. The elements below the main diagonal are set to zero. When the quot;Extraction typequot; is set to quot;upperquot;, it copies the upper triangular elements to the output matrix of the same size. The elements above the main diagonal are set to zero. When the quot;Extraction typequot; is set to quot;diagonalquot;, it copies the main diagonal elements to the output matrix of the same size. The elements above and below the main diagonal are set to zero.

## Sort

This block outputs a sorted version of its input matrix.

## Eigenvalues

This block computes the eigenvalues and the eigenvectors of a square input matrix U. The output is a vector containing the eigenvalues. Optionally, the outputs could be a diagonal matrix composed of the eigenvalues and a matrix composed of the eingenvectors represented by its columns.

## LUFactorization

This block outputs two matrices L and U, with row pivoting, from the LU factorization of a square input matrix. If A is the input matrix then E*A=L*U where E is a permutation matrix.

## SVDdecomposition

It computes the economy sized SVD of the M-by-N input matrix A by finding U, S and V such that A=U*S*V'. The output S is a vector composed of the singular values. If you want, you can have two other outputs: the unitary matrices U and V. In this case, outputs are U, Singular value and V.

## FFT

This block outputs the FFT or or the inverse FFT (IFFT) of its input vector/matrix.

## WindowFcn

This block applies a window to an input signal.

## QRFactorization

This block outputs two matrices Q and R, with row pivoting, from the QR factorization of an input matrix. If A is the input matrix then A*E=Q*R where E is a permutation matrix.

## CrossProduct

This block computes the cross-product of two input vectors of size three.