Matlab中怎样调用SVD函数

来源:百度知道 编辑:UC知道 时间:2024/05/18 14:01:47
在Matlab中怎样调用svd函数,
Function 'svd' is not defined for values of class 'uint8'.
Error in ==> svd at 29
[varargout{1:nargout}] = builtin('svd', varargin{:});
Error in ==> Untitled444 at 4
[u,s,v]=svd(a);
出来这种提示。

奇异值分解
函数 svd
格式 s = svd (X) %返回矩阵X 的奇异值向量
[U,S,V] = svd (X) %返回一个与X 同大小的对角矩阵S,两个酉矩阵U 和V,
且满足= U*S*V'。若A 为m×n 阵,则U 为m×m 阵,V
为n×n 阵。奇异值在S 的对角线上,非负且按降序排列。
[U,S,V] = svd (X,0) %得到一个“有效大小”的分解,只计算出矩阵U 的前n
列,矩阵S 的大小为n×n。
例1-73
>> A=[1 2;3 4;5 6;7 8];
>> [U,S,V]=svd(A)
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
>> [U,S,V]=svd(A,0)
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

奇异值分解
函数 svd
格式 s = svd (X) %返回矩阵X 的奇异值向量
[U,S,V] = svd (X) %返回一个与X 同大小的对角矩阵S,两个酉矩阵U 和V,
且满足= U*S*V'。若A 为m×n 阵,则U 为m×m 阵,V
为n×n 阵。