Re: [問題] MATLAB對於大型反矩陣及大型矩陣的運算
第一個問題應該用repmat做比較快
假定你的rowsum是40000x1的vector
rowsum_m就會是repmat(rowsum,1,4000);
也就是把rowsum沿row方向複製4000次
萬一發生記憶體不足的狀況
先依據rowsum內的數據作定義後再複製
int8、int16、single、double之類的
我以rand產生rowsum,再轉成int16
依照上述流程跑,應該可以在1秒內完成
第二個問題留給板友接力... 這方面沒什麼研究...
※ 引述《jamesweb3 (James)》之銘言:
: 這個問題困擾我很久了~
: 由於實驗的需要,我必須操作大型的矩陣
: 其中以下2個步驟相當緩慢,不知道有沒有人可以幫我解決:(
: 1.我的矩陣(A)約要40000*4000這麼大,建造方式是每一個row都是相同的值
: 而這個值就是某個已經建好的vector(B)決定,因此我想到用"迴圈"
: for i = 1:S
: rowsum_m(i,1:1:4000) = rowsum(i);
: end
: 結果,迴圈在MATLAB相當慢!!!有沒有好的解決方式?
: 2.其中一個步驟需要算反矩陣(temp),導致結果非常非常慢~不知道有什麼問題
: 這個矩陣的大小在40000*40000左右
: 我要計算的是: p1 = (1-alpha)*(1-beta)*(temp\Wuo);
: 所以,需要有inv(temp), 我不知道怎麼樣可以快一點
: 一次大多許一小時以上
: =========================
: 煩請知道的朋友告訴我
: 我會感激不盡!!
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 204.124.83.132
推
04/29 19:09, , 1F
04/29 19:09, 1F
→
04/29 19:09, , 2F
04/29 19:09, 2F
→
04/29 21:13, , 3F
04/29 21:13, 3F
推
04/29 21:56, , 4F
04/29 21:56, 4F
推
04/29 22:24, , 5F
04/29 22:24, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):