作者YoursEver (銀英傳出webgame!?)
看板MATLAB
標題[討論] 欲計算Hessian,應如何建立Cell Array?
時間Thu Oct 22 11:38:19 2015
如題,
要計算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
推 sunev: cellfun 不見得會比迴圈快喔,用arrayfun ? 10/22 12:55
→ celestialgod: arrayfun跟cellfun差不多吧XDD 10/22 13:39
→ celestialgod: 我忘記可以多個input了,s大對QQ 我錯惹 10/22 13:43
→ celestialgod: 以在原文修正 10/22 13:43
→ celestialgod: 喔對了 之前有測過cellfun跟for差不多XDD 10/22 13:51
→ celestialgod: (在都有先配置記憶體下) 10/22 13:51
推 sunev: 我指的是這篇所謂的後續,想辦法將迴圈向量化或是用 10/22 16:21
→ sunev: arrayfun會比較好,cellfun應該不會比較快 10/22 16:21
→ YoursEver: 謝謝sunev. 說實在話,我對arrayfun和cellfun的差異並不 10/23 11:33
→ YoursEver: 了解. 10/23 11:33
推 sunev: 簡單來說,arrayfun是掃一般的多維array,cellfun是掃cell 10/26 16:56
→ sunev: array,但matlab處理cell就是慢,所以能排成方整的array 10/26 16:57
→ sunev: 就用array吧 10/26 16:57
→ YoursEver: 收到,謝謝! 10/27 10:53