我有一个大小的三维数组(图像)(nrows x cols x ndivs),我希望沿着第三维计算1-D数值梯度,间距为0.01,并获得(nrows x ncols)渐变集。
我想到了通过循环每个像素来实现这一目标的方法:
grad_F = zeros(nrows,ncols,ndivs);
for irow = 1:nrows
for icol = 1:ncols
grad_F(irow,icol,:) = gradient(F(irow,icol,:),0.01);
end
end
我想问一下,如果没有循环遍历每个像素,是否存在渐变的数组运算?如果有这样的方式,它会更快还是需要相同的时间?
答案 0 :(得分:2)
如果我理解正确,这应该有用。
[~,~,FZ] = gradient(F,0.01)
FZ是你的第三维渐变。