%pcamain.m
function print=pcamain(filename,a,b);
%filename为文本文件文件名,a为矩阵行数(样本数),b为矩阵列数(变量指标数)
fid=fopen(filename,'r')
vector=fscanf(fid,'%g',[a b]);
fprintf('标准化结果如下:\n')
v1=pcastd(vector)
result=pcafac(v1);
pcascore(v1,result);
%pcastd.m,用总和标准化法标准化矩阵
function std=pcastd(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
%pcafac.m
function result=pcafac(vector);
fprintf('相关系数矩阵:\n')
std=corrcoef(vector)%计算相关系数矩阵
fprintf('特征向量(vec)及特征值(val):\n')
[vec,val]=eig(std) %求特征值(val)及特征向量(vec)
newval=diag(val) ;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载