www.pudn.com > PCA_NN.rar > pm.m


x=[1 10 60 80 100 100]; 
y=[100 60 120 140 160 180]; 
z=[50 100 160 200 240 240];                                         %需要拟合的坐标向量; 
m=length(x);a11=0;a12=0;a13=0;a21=0;a22=0;a23=0;a31=0;a32=0;a33=0; 
x=x+2; 
 for i=1:m 
     a11=a11+x(i)^2;a12=a12+x(i)*y(i);a13=a13+x(i)*z(i); 
     a21=a12;a22=a22+y(i)^2;a23=a23+y(i)*z(i); 
     a31=a13;a32=a23;a33=a33+z(i)^2; 
 end  
R(1,1)=a11;R(1,2)=a12;R(1,3)=a13; 
R(2,1)=a21;R(2,2)=a22;R(2,3)=a23; 
R(3,1)=a31;R(3,2)=a32;R(3,3)=a33; 
R=R./m;                                                                     %拟和数据的自相关矩阵; 
e(1,1)=sum(x)/m;e(2,1)=sum(y)/m;e(3,1)=sum(z)/m;                            %拟和数据的均值矢量; 
b11=e(1,1)^2;b12=e(2,1)*e(1,1);b13=e(1,1)*e(3,1); 
b21=b12;b22=e(2,1)^2;b23=e(2,1)*e(3,1); 
b31=b13;b32=b23;b33=e(3,1)^2; 
ee(1,1)=b11;ee(1,2)=b12;ee(1,3)=b13; 
ee(2,1)=b21;ee(2,2)=b22;ee(2,3)=b23; 
ee(3,1)=b31;ee(3,2)=b32;ee(3,3)=b33; 
E=R-ee                                                                      %求出拟合数据的协方差矩阵; 
load hald 
[pc,var]=pcacov(E);                                                         %利用pcacov()函数求出协方差矩  
b0=-e'*pc(:,3)                                                              %阵的最小特征值的归仪化向量; 
x1=0:200;x2=0:200; 
[x1g,x2g]=meshgrid(x1,x2);                                                  %生成网格矩阵; 
scatter3(x,y,z,50,'r','filled');hold on                                     %描述原始数据; 
 zzz=(-pc(1,3)/pc(3,3))*x1g-(pc(2,3)/pc(3,3))*x2g-b0/pc(3,3); 
 surf(x1g,x2g,zzz)                                                          %绘出拟合平面;