pca主成分分析matlab实现(2维降到1维)

 1 x_avr=0;
 2 y_avr=0;
 3 x=1:1:50;
 4 for i=1:1:50
 5     y(i)=x(i)+2*(rand-1);
 6 end
 7 subplot(2,1,1);
 8 plot(x,y,'*b');
 9 axis([0 50 0 50 ]);
10 for i=1:50
11     x_avr=x_avr+x(i);
12     y_avr=y_avr+y(i);
13 end
14 x_avr=x_avr/50;
15 y_avr=y_avr/50;
16 for i=1:50
17     sig(1)=(x(i)-x_avr)*(x(i)-x_avr);
18     sig(2)=(x(i)-x_avr)*(y(i)-y_avr);
19     sig(3)=sig(2);
20     sig(4)=(y(i)-y_avr)*(y(i)-y_avr);
21 end
22 sig=sig/50;
23 sigma=[sigma(1),sig(2);sig(3),sig(4)];
24 d=[0 0 ; 0 0];
25 v=[0 0 ; 0 0];
26 [v,d]=eig(sigma);
27 
28 %科学技术是第一生产力啊
29 %旋转数据
30 d
31 u2=[v(1,1);v(2,1)]%特征向量是列向量
32 u1=[v(1,2);v(2,2)]
33 for i=1:50
34     xr(i)=u1'*[x(i);y(i)];
35     yr(i)=u2'*[x(i);y(i)]; 
36 end
37 subplot(2,1,2);
38 plot(xr,yr,'*b');
39 axis([-100 100 -100 100])
View Code

 

posted @ 2013-05-27 00:14  cezorzhao  阅读(905)  评论(0编辑  收藏  举报