gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第14章/RQ_factor.m
function [d,e]=RQ_factor(x) [r,c]=size(x); x2=sum(x,1); x1=sum(x,2); T=sum(sum(x2)); for i=1:r for j=1:c z(i,j)=(x(i,j)-x2(j)*x1(i)/T)/sqrt(x2(j)*x1(i)); end end R1=z'*z; [e_vector,e_value]=eig(R1); e_value = diag(e_value); [a, index] = sort(-e_value); e_value = e_value(index); e_vector = e_vector(:,index); for i=1:c d(:,i)=e_vector(:,i)*sqrt(e_value(i)); end sum_latent=sum(e_value); temp=0;con=0;m=0; for i=1:c if con<0.8 temp=temp+e_value(i); con=temp/sum_latent; m=m+1; else break; end end d(:,m+1:c)=[]; e_vector(:,m+1:c)=[]; e_value=e_value(1:m); e=z*e_vector; for j=1:length(e_value) b=0; for i=1:r b=b+e(i,j)^2; end for i=1:r e(i,j)=e(i,j)*sqrt(e_value(j))/sqrt(b); end end