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

Posted

技术标签:

【中文标题】在 MATLAB 中找到三维矩阵中的有符号最小值【英文标题】:find the signed minimum value in a three dimensional matrix in MATLAB 【发布时间】:2017-06-30 12:55:08 【问题描述】:

我有一个 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】:

与其创建rowcol 值的网格以将ind 转换为可用于索引回d 的索引,不如使用@987654325 的第一个输出@ 其中包含沿第三维的那些最小值。

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

【讨论】:

您好 Suever,感谢您的回复。但是,在您的情况下, dm 是绝对值。在我的例子中,dm 是有符号的值。

以上是关于在 MATLAB 中找到三维矩阵中的有符号最小值的主要内容,如果未能解决你的问题,请参考以下文章

Matlab - 在三维坐标系中找到最近邻

MATLAB找出一个矩阵中的前n个最小项所在的位置

推荐一本matlab入门教材

Matlab找到矩阵最小行

matlab 如何把三维矩阵拼接

matlab怎么用三维矩阵画三维图