最近的比賽是運行:差異在Matlab結果使用PCA()和PCACOV()時
data=rand(100,10); % data set
[W,pc] = pca(cov(data));
那就不要貶低
data2=data
[W2, EvalueMatrix2] = eig(cov(data2));
[W3, EvalueMatrix3] = svd(cov(data2));
在這種情況下W2
和W3
同意和W
是他們的轉置?
還不清楚爲什麼W
應該是另外兩個的轉置?
作爲一個額外的檢查我用pcacov
:
[W4, EvalueMatrix4] = pcacov(cov(data2));
它再次同意WE
和W3
但就是W
轉置?
也許'pca'計算協方差矩陣的特徵向量? [http://math.stackexchange.com/questions/3869/what-is-the-intuitive-relationship-between-svd-and-pca](http://math.stackexchange.com/questions/3869/what-是-SVD和pca之間的直觀關係) – shamalaia
你試過'eig'或'svd'嗎? – Dan
它上面的鏈接表示,pca將數據集中並使用svd(因此可能會期望pca結果的某些差異,但這些結果完全不同?)。它還表示,輸入應該由一個n * p矩陣來表示,其中n是觀察值,而p是不建議使用協方差矩陣的變量? – Bazman