# Principle Component Analysis Computation

4 views (last 30 days)
Algorithms Analyst on 23 Apr 2013
Hi all I am applying Principle Component Analysis manauall. I have a Dataset let say
Data= [2.5000 2.4000
0.5000 0.7000
2.2000 2.9000
1.9000 2.2000
3.1000 3.0000
2.3000 2.7000
2.0000 1.6000
1.0000 1.1000
1.5000 1.6000
1.1000 0.9000]
when I compute directly by calling the matlab function princomp I get the PC
0.6779 0.7352
0.7352 -0.6779
But when I do manually like that
function [V newX D] = Untitled(X) X = bsxfun(@minus, X, mean(X,1)); %# zero-center C = (X'*X)./(size(X,1)-1); %'# cov(X)
[V D] = eig(C);
[D order] = sort(diag(D), 'descend'); %# sort cols high to low
V = V(:,order);
newX = X*V(:,1:end);
end
0.6779 -0.7352
0.7352 0.6779
I am getting different result just the minis difference why is it/
Thanks in Advance.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Leah on 23 Apr 2013
they are the same because the eigenvector (-.7532 0.6779) is equivalent to (.7532 -0.6779)
##### 3 CommentsShowHide 2 older comments
Algorithms Analyst on 28 Apr 2013
If I use the princomp function in matlab using 2D image (grayscale image)
[A B C D]=princomp(img);
so can I say that this is called 2 dimensional principle component analysis?

Sign in to comment.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by