2014-04-16 66 views
2

我是Matlab新手,在使用內置程序包進行PCA縮減時遇到了一些問題。我有37個對象,每個對象用161維矢量表示,這意味着我有161 x 37矩陣稱爲P.我需要將矢量維度減少到3,以便每個對象將由3維矢量表示。我嘗試了一些princomp(P),但我不知道要輸出哪個輸出。如何在Matlab中減少PCA

[COEFF,SCORE] = princomp(P); newData = SCORE(:,1:3);

我認爲newData不是正確的載體?

回答

2

你要轉你的數據,因爲princomp預計於行意見:

[COEFF,SCORE] = princomp(P.'); 
newData=SCORE(1:3.:).'; 

或者您可以使用pca功能給你只有前3種主成分:

[COEFF,SCORE] = pca(P.', 'NumComponents', 3) 
newData=SCORE.'; 
+0

這是最簡單的用PCA執行降維的方法。 +1 – dynamic