→ jatj: 打whos就可以看變數佔的大小 可以估算哪個佔太多空間 05/31 01:16
→ celestialgod: 用迴圈算covariance上三角部分,用cov可能用到太多 05/31 09:13
→ celestialgod: 記憶體 05/31 09:13
→ celestialgod: 2G的電腦,系統大概用掉一半,matlab最多只有1G可以 05/31 11:22
→ celestialgod: 使用,矩陣一大,真的很容易記憶體不足 05/31 11:22
→ celestialgod: error bsxfun應該是因為取完平均要跟原矩陣做相減 05/31 11:24
→ celestialgod: 時,發現原矩陣不是double.... 才出問題。 05/31 11:24
想問一下怎麼用迴圈算上三角部分@@?
Name Size Bytes Class Attributes
X 76800x5 384000 uint8
a 5x76800 384000 uint8
用whos得到的數據如上,memory得到的數據如下
Maximum possible array: 688 MB (7.214e+08 bytes) *
Memory available for all arrays: 1248 MB (1.308e+09 bytes) **
Memory used by MATLAB: 496 MB (5.201e+08 bytes)
Physical Memory (RAM): 2043 MB (2.143e+09 bytes)
另外如果算上三角部分之後求得eigenvalue的部分會受影響嗎?
因為現再要用cov去求得eig...
麻煩前輩們指點了@@"
※ 編輯: ossianlin (140.133.62.180), 05/31/2015 14:02:49
→ celestialgod: 沒注意到你還有另立一個transpose... 05/31 14:39
→ celestialgod: 這個是主要原因 05/31 14:39
→ celestialgod: 直接cov(double(X'))試試看 05/31 14:41
還是一樣out of memory @@"
不過如果取消用trancepose就可以covariance了...
這邊有點忘記為什麼老師當初要我做trancepose了
依稀印象是老師說直接cov出來的答案好像是錯誤的...
想請教一下covariance真正用意為何...?
本身數學不是很好 想了解其原理何在?
※ 編輯: ossianlin (140.133.62.180), 05/31/2015 15:24:54
→ celestialgod: 轉置前的COV是5X5...轉置後是76000 X 76000 05/31 15:27
→ celestialgod: 記憶體會不夠是因為要存76000 x 76000的矩陣 05/31 15:27
→ celestialgod: Requested 76000x76000 (43.0GB) array 05/31 15:28
→ celestialgod: 只是我很好奇,這樣的變異數矩陣是有問題的... 05/31 15:29
→ celestialgod: 只有五列...你要估計 76000*38000個參數qq 05/31 15:30
→ celestialgod: 76001*38000 (更正) 05/31 15:32
→ celestialgod: 至於cov的用意,我也不清楚你們的目的無從解釋 05/31 15:38