【问题标题】:1-D numerical gradient for a 3-D array in matlabmatlab中3维数组的1维数值梯度
【发布时间】:2016-11-14 09:58:01
【问题描述】:

我有一个大小为 (nrows x cols x ndivs) 的 3-D 数组(图像),我希望以 0.01 的间距计算沿第 3 维的 1-D 数值梯度,并获得 (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

我想问一下是否有梯度的数组操作来做上面的而不循环每个像素?如果有这样的方法,是更快还是需要同样的时间?

【问题讨论】:

    标签: image matlab gradient


    【解决方案1】:

    如果我理解正确,这应该可以。

    [~,~,FZ] = gradient(F,0.01)
    

    FZ 是你在第三维的梯度。

    【讨论】:

    • 好的,谢谢!当我在 matlab 文档上看到它时,我以为这是指其他一些操作。
    猜你喜欢
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多