PCA特征降维matlab代码
clc;
clear all;
%x = xlsread('D:\实验项目\程序\肌电信号分析\腕关节\绝对值均值特征2.xlsx', 'sheet1', 'B2:M140');
%x = xlsread('C:\Users\80590\Desktop\BP分类\腕关节特征2.xlsx', 'sheet2', 'A2:I114');
x = xlsread('C:\Users\80590\Documents\MATLAB\BP分类\测试\两次实验合并特征值1', 'sheet1', 'A2:AR165');
% x=[1.2,3,-1.1,17;
% 1.5,5,-3,22;
% 1.3,4.0,-2,19;
% 0.7,3,-2.3,11
% 1,4,-1.2,20.8];
stdr=std(x); %求各变量的标准差;
[n,m]=size(x); %矩阵的行与列
sddata=x./stdr(ones(n,1),:); %标准化变换
[p,princ,egenvalue]=pca(sddata); %调用主成分
%p=p(:,1:3); %输出前3主成分系数;
%sc=princ(:,1:3); %前3主成分量;
p=p(:,1:7); %输出前7主成分系数;
sc=princ(:,1:7); %前7主成分量;
egenvalue; %相关系数矩阵的特征值,即各主成分所占比例;
per=100*egenvalue/sum(egenvalue); %各个主成分所占百分比;
figure(1);
set(gcf,'color','w');
pareto(per);
ylabel('Votes');