作者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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1445485102.A.0CA.html
※ 编辑: YoursEver (140.109.16.166), 10/22/2015 11:43:46
1F:推 sunev: cellfun 不见得会比回圈快喔,用arrayfun ? 10/22 12:55
2F:→ celestialgod: arrayfun跟cellfun差不多吧XDD 10/22 13:39
3F:→ celestialgod: 我忘记可以多个input了,s大对QQ 我错惹 10/22 13:43
4F:→ celestialgod: 以在原文修正 10/22 13:43
5F:→ celestialgod: 喔对了 之前有测过cellfun跟for差不多XDD 10/22 13:51
6F:→ celestialgod: (在都有先配置记忆体下) 10/22 13:51
7F:推 sunev: 我指的是这篇所谓的後续,想办法将回圈向量化或是用 10/22 16:21
8F:→ sunev: arrayfun会比较好,cellfun应该不会比较快 10/22 16:21
9F:→ YoursEver: 谢谢sunev. 说实在话,我对arrayfun和cellfun的差异并不 10/23 11:33
10F:→ YoursEver: 了解. 10/23 11:33
11F:推 sunev: 简单来说,arrayfun是扫一般的多维array,cellfun是扫cell 10/26 16:56
12F:→ sunev: array,但matlab处理cell就是慢,所以能排成方整的array 10/26 16:57
13F:→ sunev: 就用array吧 10/26 16:57
14F:→ YoursEver: 收到,谢谢! 10/27 10:53