使用SVD技术的过程是:
(1)对给定集进行奇异值分解,得到奇异矩阵S。
(2)将奇异值居矩阵S中最小的几个值置为0,并将U和V中对应的行和列都置为0;
(3)得到经过特征缩减的新数据集X'=U*S*V。
格式:
s = svd (X)
%返回矩阵X 的奇异值向量
[U,S,V] = svd (X)
%返回一个与X 同大小的对角矩阵S,两个正交矩阵U 和V, 且满足X= U*S*V'。若A 为m×n 阵,则U 为m×m 阵,V 为n×n阵。奇异值在S 的对角线上,非负且按降序排列。
[U,S,V] = svd (X,0)
%得到一个“有效大小”的分解,只计算出矩阵U 的前n 列,矩阵S 的大小为n×n。 结果中 s 矩阵表示的是奇异值,代表了原矩阵的特性,这样做,可以对数据降维,保留数据特性的基础上做降维,方便做一些特征对比处理,减小计算量,提高匹配精度。
例:
>> 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
原文地址:http://www.zdh1909.com/html/matlab/10115.html
http://zhidao.baidu.com/link?url=1Zxe7I3pB5Lk2F-zwQW6LWR_DmLwfi61WNM0FScvcUzEzNz2J95CTZ6pt09Fui41fAEEFhAWVDusnQCwk82I8q