annotate pca.m @ 6:6d94b2bafcd1 default tip

Replace complicated memory-intensive operation with a faster loop
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 06 Dec 2011 11:49:32 -0500 (2011-12-06)
parents 069653867b3b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 function [U, S] = pca(X)
3
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
2 ##PCA Run principal component analysis on the dataset X
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
3 ## [U, S, X] = pca(X) computes eigenvectors of the covariance matrix of X
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
4 ## Returns the eigenvectors U, the eigenvalues (on diagonal) in S
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
5 ##
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6
3
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
7 [U, S, ~] = svd (X'*X/rows (X));
0
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8
3
069653867b3b Implement PCA
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 0
diff changeset
9 endfunction