MATLAB 板


LINE

真不好意思,才隔一天就又上來問.. 昨天問的東西其實是我要算的東西的第二步,原本他才是瓶頸,但是板上高手一下就解決 了,我現在想不用for處理第一步,也就是求出昨天的atot (m*n,k) atot中的元素是用一個m*n二維座標(x,y)和三個一組的數字(a1,a2,a3)帶入一個函數 f(x,y,a1,a2,a3)求得,三個一組的數字共有k組,所以最後atot的維度是(m*n,k) https://imgur.com/CTjyecs 程式上先用meshgrid建立座標,再產生k組數字 m=15; n=19; k=10000; [X,Y]=meshgrid(1:m,1:n); ini=randn(k,3); 為了方便起見這裡f就先用sin和多項式來舉例 f(x,y,a1,a2,a3)=sin(x+y^2+a1+a2^2+a3^3) 目前想了一個辦法是用arrayfun配上reshape atotpr=arrayfun(@(x,y) sin(x+y^2+ini(:,1)+ini(:,2).^2+ini(:,3).^3),X,Y,'un',0); atotmid=cell2mat(atotpr); atot=reshape(atotmid,k,m*n); 這樣確實比用三層for loop快很多了,隨便試幾個m,n,k都快一個數量級以上,不過想知道 有沒有更好的方法。另外這樣寫gpu也沒有辦法算,matlab的gpu不接受non UniformOutput ,雖然說以目前的速度來看,gpu似乎也不是很有必要了....但還是希望能多學一點 感恩 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.253.151
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1513717470.A.F95.html ※ 編輯: Absolitude (140.114.253.151), 12/20/2017 05:06:43
1F:推 sunev: 這裡xy和a剛好可以拆開,所以 12/20 07:50
2F:→ sunev: atot=bsxfun(@plus,X(:)+Y(:).^2,(ini(:,1)+ini(:,2).^2)') 12/20 07:51
3F:→ sunev: atot=reshape(sin(atot),[m*n k]); 12/20 07:52
4F:推 sunev: 另外我印象中arrayfun沒有比for-loop快,你可以check一下 12/20 07:58
5F:→ Absolitude: 原來可以用(:),我要算的有交叉項,不過剛剛弄出來了 12/20 22:11
6F:→ Absolitude: 感恩!! 12/20 22:12
7F:→ Absolitude: 晚點再看看FOR的 12/20 22:12
8F:推 sunev: 真要快還是得用C,不然就是用gpu 12/22 16:13
9F:推 profyang: 2016b以後的matlab不用bsxfun也可以做到2F的事情了 12/22 20:02
10F:→ profyang: 直接X(:)+Y(:).^2+(ini(:,1)+ini(:,2).^2)'應該就可以 12/22 20:03
11F:→ Absolitude: 對程式語言的本質不瞭解 C真的一定比MATLAB快嗎 12/24 01:31
12F:→ Absolitude: P大感恩,不過我目前的版本沒那麼新 12/24 02:19
13F:→ LiamIssac: 如果要跟文獻拼速度可能需要計較(在同一個環境下) 但如 12/24 15:06
14F:→ LiamIssac: 果只是要結果 時間基本不會差到哪(order of 1) 就看程 12/24 15:06
15F:→ LiamIssac: 式的寫法 那些arrayfun背後也都是迴圈寫成的 只是經過 12/24 15:06
16F:→ LiamIssac: 優化而已 12/24 15:06
17F:→ LiamIssac: 可以到mathworks的論壇去看看 很多高手在那討論 12/24 15:07
18F:推 profyang: 用bsxfun的話應該不會比C慢 12/24 18:23







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP