How pca() function works in matlab
1 回表示 (過去 30 日間)
古いコメントを表示
I'm trying to apply pca() function on 3d data, But I'm getting empty COEFF matrix
x1 = randn(400,1);
y1 = randn(400,1);
z1 = randn(400,1);
plot3(x1,y1,z1,'r.');
[COEFF] = pca([x1;y1;z1]')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/155640/image.png)
0 件のコメント
採用された回答
Jason Millen
2016 年 8 月 16 日
編集済み: Jason Millen
2016 年 8 月 16 日
The reason you are getting an empty 1200-by-0 matrix is because you are passing a 1-by-1200 matrix to pca.
I believe what you want to do is pass it a 400-by-3 matrix, which can be accomplished with [x1';y1';z1']'. Thus, if you call pca([x1';y1';z1']'), you will get a 3-by-3 coefficient matrix.
3 件のコメント
Jason Millen
2016 年 8 月 16 日
I believe there is a transpose operator given before the matrix is passed into pca, making it 1-by-1200. Please correct me if I am wrong.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!