在MATLAB中找到三维矩阵中的带符号最小值

时间:2017-02-12 14:30:00

标签: matlab matrix minimum

我有一个3D矩阵d,我想找到沿第三维的有符号最小值。目前,我使用以下代码

tmp = abs(d);
[row, col]=ndgrid(1:size(d,1),1:size(d,2));

[v,ind] = min(tmp,[],3); 
index = row + size(d,1)*size(d,2)*(ind-1)+ size(d,1)*(col-1); %turn the ind to index
dm = d(index); %get the signed minimum value

以上代码效率不高。有谁知道更好的选择?谢谢!

1 个答案:

答案 0 :(得分:1)

而不是创建rowcol值的网格,以将ind转换为可用于索引回d的索引,您可以使用 min 的第一个输出,其中包含沿第三维的最小值。

dm = min(abs(d), [], 3);