[討論] 欲計算Hessian,應如何建立Cell Array?

看板MATLAB作者 (銀英傳出webgame!?)時間9年前 (2015/10/22 11:38), 9年前編輯推噓3(3011)
留言14則, 3人參與, 最新討論串1/3 (看更多)
如題, 要計算4D Hessian, 請問應如何將所有的偏微分項排入cell array? 以2D舉例, (1) H = [ partial_xx, partial_xy; partial_yx, partial_yy ]; (2) 假設對一張 M-by-N 的影像做 Hessian, 這時候會得到 partial_xx, partial_xy; partial_yx, partial_yy 等, 共 4 個大小為 M-by_N 的矩陣. (3) 我希望建立一個 M-by-N 的 cell array, 每一個cell內含一個 2*2 的矩陣: [ partial_xx(i,j), partial_xy(i,j); partial_yx(i,j), partial_yy(i,j)] (i,j)對應到原本影像內的第(i,j)個pixel; == 請問該怎麼寫才省時省力? 目前必須要排進cell array才能call cellfun處理後續. 雖然可以靠迴圈硬排, 因為實際的4D data量太大,迴圈會額外耗費時間. 謝謝. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.16.166 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1445485102.A.0CA.html ※ 編輯: YoursEver (140.109.16.166), 10/22/2015 11:43:46

10/22 12:55, , 1F
cellfun 不見得會比迴圈快喔,用arrayfun ?
10/22 12:55, 1F

10/22 13:39, , 2F
arrayfun跟cellfun差不多吧XDD
10/22 13:39, 2F

10/22 13:43, , 3F
我忘記可以多個input了,s大對QQ 我錯惹
10/22 13:43, 3F

10/22 13:43, , 4F
以在原文修正
10/22 13:43, 4F

10/22 13:51, , 5F
喔對了 之前有測過cellfun跟for差不多XDD
10/22 13:51, 5F

10/22 13:51, , 6F
(在都有先配置記憶體下)
10/22 13:51, 6F

10/22 16:21, , 7F
我指的是這篇所謂的後續,想辦法將迴圈向量化或是用
10/22 16:21, 7F

10/22 16:21, , 8F
arrayfun會比較好,cellfun應該不會比較快
10/22 16:21, 8F

10/23 11:33, , 9F
謝謝sunev. 說實在話,我對arrayfun和cellfun的差異並不
10/23 11:33, 9F

10/23 11:33, , 10F
了解.
10/23 11:33, 10F

10/26 16:56, , 11F
簡單來說,arrayfun是掃一般的多維array,cellfun是掃cell
10/26 16:56, 11F

10/26 16:57, , 12F
array,但matlab處理cell就是慢,所以能排成方整的array
10/26 16:57, 12F

10/26 16:57, , 13F
就用array吧
10/26 16:57, 13F

10/27 10:53, , 14F
收到,謝謝!
10/27 10:53, 14F
文章代碼(AID): #1MA5ek3A (MATLAB)
文章代碼(AID): #1MA5ek3A (MATLAB)