%3.1_cwstd.m,用总和标准化法标准化矩阵
function std=cwstd(vector)
cwsum=sum(vector,1); %对列求和
[a,b]=size(vector); %矩阵大小,a 为行数,b 为列数
for i=1:a
for j=1:b
std(i,j)= vector(i,j)/cwsum(j);
end
end
% 3.2_cwfac.m 计算相关系数矩阵
function result=cwfac(vector);
fprintf('相关系数矩阵:\n')
std=CORRCOEF(vector) %计算相关系数矩阵
fprintf('特征向量(vec)及特征值(val):\n')
[vec,val]=eig(std) %求特征值(val)及特征向量(vec)
newval=diag(val) ;
[y,i]=sort(newval) ; %对特征根进行排序,y 为排序结果,i 为索引
fprintf('特征根排序:\n')
for z=1:length(y)
newy(z)=y(length(y)+1-z);
end
fprintf('%g\n',newy)
rate=y/sum(y);
fprintf('\n 贡献率:\n')
newrate=newy/sum(newy)
sumrate=0;
newi=[];
for k=length(y):-1:1
sumrate=sumrate+rate(k);
newi(length(y)+1-k)=k;
if sumrate>0.85 break;
matlab实现主成分分析代码
最新推荐文章于 2020-12-18 11:16:11 发布
该博客介绍了如何使用MATLAB进行主成分分析(PCA)。首先通过`cwstd`函数进行总和标准化,接着利用`cwfac`计算相关系数矩阵和特征值、特征向量,然后确定主成分数。`cwscore`函数计算得分,最后`cwprint`用于打印和保存结果。整个过程详细展示了PCA的步骤和MATLAB实现。
摘要由CSDN通过智能技术生成