[爆卦]matlab反矩陣是什麼?優點缺點精華區懶人包

為什麼這篇matlab反矩陣鄉民發文收入到精華區:因為在matlab反矩陣這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者profyang (prof)看板MATLAB標題Re: [問題] MATLAB對於大型反矩陣及...


※ 引述《jamesweb3 (James)》之銘言:
: 這個問題困擾我很久了~
: 由於實驗的需要,我必須操作大型的矩陣
: 其中以下2個步驟相當緩慢,不知道有沒有人可以幫我解決:(
: 1.我的矩陣(A)約要40000*4000這麼大,建造方式是每一個row都是相同的值
: 而這個值就是某個已經建好的vector(B)決定,因此我想到用"迴圈"
: for i = 1:S
: rowsum_m(i,1:1:4000) = rowsum(i);
: end
: 結果,迴圈在MATLAB相當慢!!!有沒有好的解決方式?
rowsum_m = rowsum(ones(40000,1),:);
: 2.其中一個步驟需要算反矩陣(temp),導致結果非常非常慢~不知道有什麼問題
: 這個矩陣的大小在40000*40000左右
: 我要計算的是: p1 = (1-alpha)*(1-beta)*(temp\Wuo);
你在matlab裡面就已經是這樣打的嗎? 還是你打的是inv(temp)*Wuo?

兩者速度有差 一個是用LU 一個是真的去求反矩陣

但這種反矩陣的問題其實真的沒什麼辦法了...除非你是帶狀

但你應該顯然不是= =
: 所以,需要有inv(temp), 我不知道怎麼樣可以快一點
: 一次大多許一小時以上

: =========================
: 煩請知道的朋友告訴我
: 我會感激不盡!!
: 謝謝

--
正妹也只不過是一組物質波方程的特解罷了(  ̄ c ̄)y▂ξ

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.247.141
jamesweb3:其實我要inv(temp)*Wuo, 參考過好像\比較適合 04/29 22:18
jamesweb3:但是仍然很慢...... 04/29 22:18
profyang:恩...反矩陣除非你矩陣形式特殊 不然真的無法 04/29 22:51
jamesweb3:那~我可以用matlab平行運算嗎? 04/29 23:01
jamesweb3:可是,我很怕ram會爆掉~ 現在跑一個run有時接近100% ram 04/29 23:02
profyang:這我就不清楚了@@沒用過 04/29 23:31
iHakka:如果你有可以支援cuda的卡的話可以下載gpumat來平行 04/29 23:35
iHakka:理論上的平行效率會比matlab內建的還要好,不過有時候用gpu 04/29 23:35
iHakka:反而會比用CPU還要慢。如果改用cuda語言的話可以真的快很多 04/29 23:36
iHakka:缺點是程式要在自己寫... 04/29 23:36
iHakka:不過不過你的矩陣這麼大GPU的記憶體應該裝不下會比麻煩 04/29 23:40
profyang:阿不好意思 第一題我有點看錯你的意思 應該改成這樣: 04/30 00:10
profyang:rowsum_m(:,1:4000) = rowsum(:,ones(4000)); 04/30 00:12
profyang:雖然上面板友說的repmat應該是比較general的作法 但是以 04/30 00:12
profyang:你這邊二維矩陣的情況來說我這樣會稍快一點 04/30 00:13
profyang:又打錯= = ones(1,4000) 04/30 00:13
jamesweb3:謝謝你的回答:) 04/30 15:31
jamesweb3:可以問說,用cuda的畫記憶體問題怎麼解決嗎? 05/01 14:34

你可能也想看看

搜尋相關網站