资源简介
用MATLAB实现的主成分分析法,有数据,可直接运行

代码片段和文件信息
clc
clear all
fid=fopen(‘data.txt‘‘r‘)
X=fscanf(fid‘%g‘[10 35]);
X=X‘;
ans=fclose(fid)
%fprintf(‘标准化结果如下:\n‘)
%vl=cwstd(vector)
%result=cwfac(vl);
%[resultstd]=cwfac(X);
%cwscore(stdresult);
fprintf(‘标准样本变换法标准化的(std):\n‘)
std=zscore(X)
fprintf(‘计算相关系数矩阵(st):\n‘)
st=corrcoef(std)
fprintf(‘特征向量(vec)及特征值(val):\n‘)
[vecval]=eig(st)
newval=diag(val);
[yi]=sort(newval); %对特征根进行排序,y为排序结果,i为索引
fprintf(‘特征根排序:\n\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)=i(k);
if sumrate>0.85 break; %【70%在这里改动】
end
end
fprintf(‘主成分数:%g\n\n‘length(newi));%【newi里放的是主成分】
fprintf(‘主成分荷载:\n‘)
for p=1:length(newi)
for q=1:length(y)
result(qp)=sqrt(newval(newi(p)))*vec(qnewi(p));
end
end%计算荷载
disp(result)
sco=std*result;
csum=sum(sco2);
[newcsumi]=sort(-1*csum);
[newij]=sort(i);
fprintf(‘计算得分:\n‘)
score=[scocsumj]%得分矩阵:sco为各主成分得分;csum为综合得分;j为排序结果
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2955 2012-10-27 14:42 PCA\data.txt
文件 1257 2012-10-31 13:23 PCA\pca.m
目录 0 2013-01-15 14:33 PCA
----------- --------- ---------- ----- ----
4212 3
- 上一篇:Matlab 常微分方程数值解法
- 下一篇:误差分析计算公式和对应的matlab实现
相关资源
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论