MATLAB Function Reference |
Syntax
k = rank(A) k = rank(A,tol)
Description
傳回矩陣k = rank(A)
A
中奇異值(singular values)的個數,其中其奇異值(singular values)得大小必須比預設的容忍度(tolerance)max(size(A))
*norm(A)
*eps
的值還大。
傳回矩陣k = rank(A,
tol)
A
中奇異值(singular values)的個數,其中奇異值(singular values)的大小必須比tol
的值還大。
Algorithm
有許多方法可以計算一個矩陣中的秩(rank)。而MATLAB則使用以奇異值(singular values)的分解為基礎的方式或SVD來求得矩陣的秩(rank)。SVD的演算法是最耗時的,但是卻是最值得信賴的。
s = svd(A); tol = max(size(A))*s(1)*eps; r = sum(s > tol);
References
[1] Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.
randperm | rat, rats |