MATLAB实现PCA算法之果然我是只菜鸟

clear all;close all;clc;
x=1*randn(1000,1);
y=1*randn(1000,1);
z=x+y+0.15.*randn([1000,1]);%生成随机矩阵
data=[x';y';z']';
scatter3(x,y,z,'g.');%在三维图中画出点
hold on;
k=2;
meandata=mean(data);%计算矩阵的均值
for i=1:3
    new_data(:,i)=data(:,i)-meandata(1,i);
end
covdata=cov(new_data);%计算矩阵的协方差矩阵
[dataV,dataD]=eigs(covdata,k);%求协方差矩阵的前k个特征值和特征向量
%将数据集投影到选取的特征向量上,得到已降维的数据
newdata=new_data*dataV;
plot(newdata(:,1),newdata(:,2),'b.');

MATLAB实现PCA算法MATLAB实现PCA算法

相关文章: