简体   繁体   English

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

[英]find the signed minimum value in a three dimensional matrix in MATLAB

I have a 3D matrix d and I want to find the signed minimum value along the third dimension. 我有一个3D矩阵d,我想沿着第三维找到有符号的最小值。 Currently, I use following code 目前,我使用以下代码

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

The above code does not so efficient. 上面的代码效率不高。 Does anyone know a better choice? 有谁知道更好的选择? Thank you! 谢谢!

无需创建rowcol值的网格以将ind转换为可用于索引回d索引,您只需使用min第一个输出即可,输出包含第三个维度上的最小值。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM