mainfactor.m

来自「MATLAB科学计算与工程分析源代码源程序3」· M 代码 · 共 31 行

M
31
字号
function [F,rate,maxlamda]=mainfactor(X)
[n,p]=size(X);
meanX=mean(X);%junzhi
varX=var(X);%fangcha
for i=1:p      
    for j=1:n
    X0(j,i)=(X(j,i)-meanX(i))/((varX(i))^0.5);
    end
end
V=corrcoef(X0);
[VV0,lamda0]=eig(V);
lamda1=sum(lamda0);
lamda=lamda1(find(lamda1>0));
VV=VV0(:,find(lamda1>0));
k=1;
while(k<=length(lamda))
    [maxlamda(k),I]=max(lamda);
    maxVV(:,k)=VV(:,I);
    lamda(I)=[];
    VV(:,I)=[];
    k=k+1;
end
lamdarate=maxlamda/sum(maxlamda);
rate=(zeros(1,length(maxlamda)));
for l=1:length(maxlamda)
    F(:,l)=maxVV(:,l)'*X';
    for m=1:l
    rate(l)=rate(l)+lamdarate(m);
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?