不知道你的情况这里给你个例子
此程序用于主成分分析的matlab程序,可以输出贡献率及画出二维散点图
d滑木读映候怀格宜首ataset=xls衡read(‘d:\1\11.xls’)
stdr=std(dataset);
%求出各变量标准差
[n,m]=size(dataset)
%定义矩阵的行列数
sddata=dataset./stdr(ones(n,1),:);
%将原始数据集体标准化
sddata%输出标准化数据
[P,princ,eigenvalue,t2]=princomp(sddata);
%调用主成分分析数据
度增措p3=P(:,1:3);
%提取前三个主成分系数
p3
%输出前三个远里卫念二主成分系数
sc=princ(:,1:3);
%提出前三个主成分得怕依场队任位年向川分值
sc
%输出前三个主成分得分值
eigenvalue
%输让查生顺危出相关矩阵的各特征值
e=育eigenvalue(1:3)金培约临尽分督’
%提取前三个特征根并转置
M=协束直声称酒围边信行e(ones(m,1),额阶季据:).^0.5;
%利用特征根构造变化矩阵
compmat=p3.*M
%求主成分载荷矩阵的前三列
per=100*eigenvalue/sum(eigenva圆看假百日片lue);
%求出各个主成分的贡献率
per
%求出各个主成分的贡献率
cumsum(per)
%求出各个主成分的累计贡献率
pareto镇况生(per)
%将贡献率绘成直方图
t2
%输出各省市与负续展平均位置的距离
plot到办活科充证连(eigenvalue,'r+')
%绘制方差贡献散点图
holdon
%保持图形
plo绿开者盟沿给t(eigenvalue,'g-');
%绘制方差贡献药山麓图
holdoff
%关闭图形
plot(princ(:,1),princ(:,2),'+');
%绘制2维分布散点图
gname,(rowname)
%标识个别散点所代表的省市名称