Analyse en Composante principale de MATLAB

Je suis la mise en œuvre de l'APC à l'aide des valeurs propres de décomposition pour le peu de données. Je sais matlab a l'APC de mise en œuvre, mais elle m'aide à comprendre toutes les subtilités lorsque j'écris du code.
J'ai suivi les conseils de ici, mais j'obtiens des résultats différents en comparaison à la fonction intégrée dans princomp.

Quelqu'un pourrait-il regarder et de me diriger dans la bonne direction.

Voici le code:

function [mu, Ev, Val ] = pca(data)

% mu - mean image
% Ev - matrix whose columns are the eigenvectors corresponding to the eigen
% values Val 
% Val - eigenvalues

if nargin ~= 1
 error ('usage: [mu,E,Values] = pca_q1(data)');
end

mu = mean(data)';

nimages = size(data,2);

for i = 1:nimages
 data(:,i) = data(:,i)-mu(i);
end

L = data'*data;
[Ev, Vals]  = eig(L);    
[Ev,Vals] = sort(Ev,Vals);

% computing eigenvector of the real covariance matrix
Ev = data * Ev;

Val = diag(Vals);
Vals = Vals / (nimages - 1);

% normalize Ev to unit length
proper = 0;
for i = 1:nimages
 Ev(:,i) = Ev(:,1)/norm(Ev(:,i));
 if Vals(i) < 0.00001
  Ev(:,i) = zeros(size(Ev,1),1);
 else
  proper = proper+1;
 end;
end;

Ev = Ev(:,1:nimages);

OriginalL'auteur matcheek | 2010-12-09