lda.txt

来自「人脸识别程序中的调试 希望做毕业设计的同学朋友能有用」· 文本 代码 · 共 31 行

TXT
31
字号
function [W]=lda(Data,NumPerClass,NumOfClass)
[W1,neig1]=makebasis(Data);
Wpca=W1(:,1:neig1);
%Data1=Wpca'*(Data-mean(Data,2));
 Data1=Wpca'*(Data-repmat(mean(Data,2),1,360));
[rowData,colData] = size(Data1);
Miu=mean(Data1,2);
for i=1:NumOfClass
    Miu1(:,i)=mean(Data1(:,NumPerClass*(i-1)+1:NumPerClass*i),2);
end
SB=zeros(rowData,rowData);
SW=zeros(rowData,rowData);
for i=1:NumOfClass
    SB=SB+1/NumOfClass*(Miu1(:,i)-Miu)*(Miu1(:,i)-Miu)';
end
for i=1:NumOfClass
    SW1=zeros(rowData,rowData);
    for j=NumPerClass*(i-1)+1:NumPerClass*i
        SW1=SW1+1/NumOfClass*(Data1(:,j)-Miu1(:,i))*(Data1(:,j)-Miu1(:,i))';
    end
   SW=SW+SW1; 
end
[V,D] = eig(SB,SW);
eigenvalues = diag(D);
[eigenvalues_sort, index] = sort(eigenvalues,'descend');
% [eigenvalues, index] = sort(abs(eigenvalues));
eigenvec_sort=V(:,index);
for c=1:size(eigenvec_sort,2)
    W2(:,c) = eigenvec_sort(:,c)/norm(eigenvec_sort(:,c)); % A is the eigenvector matrix sorted with respect to the eigenvalues.
end
W=Wpca*W2;

⌨️ 快捷键说明

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