如何在Matlab中减少PCA

时间:2014-04-16 16:05:09

标签: matlab pca

我是Matlab的新手,使用内置软件包进行PCA减少会遇到一些问题。我有37个对象,每个对象由161维向量表示,这意味着我有161 x 37矩阵称为P.我需要将向量维度减少到3.这样每个对象将由3维向量表示。我尝试过使用princomp(P),但我不知道要采取哪种输出。

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

我认为newData不是正确的载体?

1 个答案:

答案 0 :(得分:2)

您必须转置数据,因为princomp期望对行进行观察:

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

或者,您可以使用pca函数仅为您提供前3个主要组件:

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