This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Rank of matrix


k = rank(A)
k = rank(A,tol)



k = rank(A) returns the rank of matrix A.

Use sprank to determine the structural rank of a sparse matrix.


k = rank(A,tol) specifies a different tolerance to use in the rank computation. The rank is computed as the number of singular values of A that are larger than tol.


collapse all

Determine whether a matrix is full rank.

Create a 3-by-3 matrix. The values in the third column are twice as large as those in the second column.

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

Calculate the rank of the matrix. If the matrix is full rank, then the rank is equal to the number of columns, size(A,2).

ans = 2
ans = 3

Since the columns are linearly dependent, the matrix is rank deficient.

Calculate the rank of a matrix using a tolerance.

Create a 4-by-4 diagonal matrix. The diagonal has one small value equal to 1e-15.

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

Calculate the rank of the matrix.

ans = 3

The matrix is not considered to be full rank, since the default algorithm calculates the number of singular values larger than max(size(A))*eps(norm(A)). For this matrix, the small value on the diagonal is excluded since it is smaller than the tolerance.

Calculate the rank of the matrix again, but specify a tolerance of 1e-16.

ans = 4

Input Arguments

collapse all

Input matrix.

Data Types: single | double
Complex Number Support: Yes

Tolerance, specified as a scalar. See the Algorithms section for more information.

Example: rank(A,1e-5)

More About

collapse all


The number of linearly independent columns in a matrix is the rank of the matrix. The row and column rank of a matrix are always equal.

A matrix is full rank if its rank is the highest possible for a matrix of the same size, and rank deficient if it does not have full rank. The rank gives a measure of the dimension of the range or column space of the matrix, which is the collection of all linear combinations of the columns.


rank uses a method based on the singular value decomposition, or SVD. The SVD algorithm is more time consuming than some alternatives, but it is also the most reliable.

The rank of a matrix A is computed as the number of singular values that are larger than a tolerance. By default, the tolerance is max(size(A))*eps(norm(A)). However, you can specify a different tolerance with the command rank(A,tol).

Extended Capabilities

See Also

| | |

Introduced before R2006a

Was this topic helpful?