您的位置:首页 > 编程语言 > MATLAB

matlab中svd函数用法总结

2017-05-30 14:11 513 查看


1、帮助文档


svd

Singular value decomposition


Syntax

s = svd(X)

[U,S,V] = svd(X)

[U,S,V] = svd(X,0)

[U,S,V] = svd(X,'econ')


Description

The svd command computes the matrix singularvalue decomposition.

s = svd(X) returns a vectorof singular values.

[U,S,V] = svd(X) producesa diagonal matrix S of the same dimension as X,with nonnegative diagonal elements in decreasing order, and unitarymatrices U and V so
that X= U*S*V'.

[U,S,V] = svd(X,0) producesthe "economy size" decomposition. If X ism-by-n with m > n, then svd computes onlythe first ncolumns of U and S isn-by-n.

[U,S,V] = svd(X,'econ') also produces the"economy size" decomposition. If X ism-by-n with m >= n, it is equivalent tosvd(X,0).For m < n, only the first m columns of V arecomputed and S is m-by-m.


Examples

For the matrix
X =
1    2
3    4
5    6
7    8


the statement
[U,S,V] = svd(X)


produces
U =
-0.1525   -0.8226   -0.3945   -0.3800
-0.3499   -0.4214    0.2428    0.8007
-0.5474   -0.0201    0.6979   -0.4614
-0.7448    0.3812   -0.5462    0.0407

S =
14.2691         0
0    0.6268
0         0
0         0

V =
-0.6414     0.7672
-0.7672    -0.6414


The economy size decomposition generated by
[U,S,V] = svd(X,0)


produces
U =
-0.1525   -0.8226
-0.3499   -0.4214
-0.5474   -0.0201
-0.7448    0.3812
S =
14.2691         0
0    0.6268
V =
-0.6414    0.7672
-0.7672   -0.6414


Diagnostics

If the limit of 75 QR step iterations is exhausted while seekinga singular value, this message appears:
Solution will not converge.


2、使用误区

>> S=svd(A)

??? Undefined function or method 'svd' for input arguments of type 'uint8'.

出错原因,A的数据类型为uint8

解决办法S=svd(double(A))

>> S=SVD(double(A))

??? Undefined function or method 'SVD' for input arguments of type 'double'.

出错原因,SVD在R2011a中不能被调用,区分大小写

解决办法S=svd(double(A))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: