MATLAB Functions | Help Desk |
rank
Rank of a matrix
k = rank(A) k = rank(A,tol)The
rank
function provides an estimate of the number of linearly independent rows or columns of a matrix.
k = rank(A)
returns the number of singular values of A
that are larger than the default tolerance, max(size(A))
*norm(A)
*eps
.
k = rank(A,
tol)
returns the number of singular values of A
that are larger than tol
.
There are a number of ways to compute the rank of a matrix. MATLAB uses the method based on the singular value decomposition, or SVD, described in Chapter 11 of the LINPACK Users' Guide. The SVD algorithm is the most time consuming, but also the most reliable.
The rank
algorithm is
s = svd(A); tol = max(size(A))*s(1)*eps; r = sum(s > tol);[1] Dongarra, J.J., J.R. Bunch, C.B. Moler, and G.W. Stewart, LINPACK Users' Guide, SIAM, Philadelphia, 1979.