2014-04-16 4 views
2

Matlab을 처음 사용하고 PCA 감소를 위해 내장 패키지를 사용할 때 몇 가지 문제가 있습니다. 저는 각각 161 개의 차원 벡터로 표현되는 37 개의 객체를 가지고 있습니다. 즉, P라는 161 x 37 행렬을 가짐을 의미합니다. 각 객체가 3 차원 벡터로 표현되도록 벡터 크기를 3으로 줄여야합니다. 나는 princomp (P)로 무언가를 시도했지만 어떤 출력을해야할지 모르겠다.Matlab에서 PCA 축소하는 방법

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

newData가 올바른 벡터가 아닌 것 같습니까?

답변

2

당신은 princomp 행에 관찰을 기대하기 때문에 데이터를 트랜스해야 :

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

이는 간단합니다 : 또는 당신이 당신에게 첫 번째 3 개 주요 구성 요소를 제공하기 위해 pca 기능을 사용할 수 있습니다

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

을 PCA로 차원 감소를 수행하는 방법. +1 – dynamic

관련 문제