Reduced row echelon form
R = rref(A)
[R,jb] = rref(A)
[R,jb] = rref(A,tol)
R = rref(A) produces the reduced row echelon form of A using Gauss Jordan elimination with partial pivoting. A default tolerance of (max(size(A))*eps *norm(A,inf)) tests for negligible column elements.
r = length(jb) is this algorithm's idea of the rank of A.
x(jb) are the pivot variables in a linear system Ax = b.
A(:,jb) is a basis for the range of A.
R(1:r,jb) is the r-by-r identity matrix.
Roundoff errors may cause this algorithm to compute a different value for the rank than rank, orth and null. Additionally, use mldivide to solve linear systems when high precision is required.
Use rref on a rank-deficient magic square:
A = magic(4), R = rref(A) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 R = 1 0 0 1 0 1 0 3 0 0 1 -3 0 0 0 0