makbasis.txt
来自「LDA 人脸识别中的 makebaisc程序段 希望对毕业设计用的到的同学有用」· 文本 代码 · 共 40 行
TXT
40 行
function [W,neig] = makebasis(X)
% A = makebase(X)
%
% Function that creates the "faces space", i. e. the
% basis of the space created throught the eigenvectors
% of the covariance matrix of the population matrix.
%
% X = Population matrix (as described in function
% makepop().
%
% A = Orthogonal basis of the face space.
% Covariance matrix:
% ['Computing the covariance matrix of X (Cx)...']
miu=mean(X,2);
A=X-repmat(miu,1,size(X,2));
S=A'*A;
% S=A*A';
% ['Computing the eigenfaces and eigenvalues of Cx...']
[V,D] = eig(S); % D = diagonal matrix with the eigenvalues
% V = matrix in witch eacj column is the
% respective eigenfaces:
% Cx*V = V*D.
V=A*V;
% neig=size(X,2);
neig=rank(S);
% ['Sorting the eigenvectors with respect to the decreasing order of the eigenvalues...']
eigenvalues = diag(D);
[eigenvalues, index] = sort(eigenvalues);
sizeV=size(V,2);
W=zeros(size(V));
for c=1:sizeV,
eigenvalues_sort(c) = eigenvalues(sizeV-c+1);
W(:,c) = V(:,index(sizeV-c+1)); % A is the eigenvector matrix sorted with respect to the eigenvalues.
W(:,c)=W(:,c)/norm(W(:,c));
end
eigenvalues=eigenvalues_sort';
return
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?