`(u, ind)=rref(a)`

`(u, ind)=rref(a, tol)`

Inputs | |

`a` |
A matrix. |

`tol` |
A small positive real number. |

Outputs | |

`u` |
The reduced row echelon form of `a` , with the same number of rows as `a` . |

`ind` |
A vector of integers. |

If

`a`

is square matrix of full rank, `u`

is the identity matrix of the same size.
If

`a`

is an `mXn`

matrix with `m>n`

, `u`

is of the form `[ I P;0 0]`

where `I`

is the identity matrix of size `length(ind)`

, with `p`

a matrix containing non-zero elements.
If

`a`

is an `mXn`

matrix of full rank with `m<n`

, `u`

is of the form `[ I P]`

where `I`

is the identity. Otherwise, `u`

is of the form `[I P; 0 p]`

as for the case `m>n`

.
The estimated rank of the matrix can be obtained from

`length(ind)`

. The elements of the vector `ind`

are the row indices of the columns of `a`

which were used for pivoting during the construction of `rref`

.
>>a=[1 2 3 ;5 6 7 ; 9 10 11];>>(rrf,ind)=rref(a)>>rrf1.0000 0 -1.0000 0 1.0000 2.0000 0 0 0>>ind1 2>>// length(ind) is the same as rank(a)>>rank(a)2