簡體   English   中英

Matlab中3D數組的1D數值梯度

[英]1-D numerical gradient for a 3-D array in matlab

我有一個大小為(rows x cols x ndivs)的3-D數組(圖像),我希望沿着第3維以0.01的間距計算一維數字梯度,並獲得(rows x cols)漸變集。

我想過一種通過遍歷每個像素來做到這一點的方法:

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

我想問一下是否有漸變的數組操作可以完成上述操作而不會遍歷每個像素? 如果有這種方法,是更快還是需要相同的時間?

如果我對您的理解正確,那應該可以。

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

FZ是您在3D維度上的漸變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM