在 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】:与其创建row
和col
值的网格以将ind
转换为可用于索引回d
的索引,不如使用@987654325 的第一个输出@ 其中包含沿第三维的那些最小值。
dm = min(abs(d), [], 3);
【讨论】:
您好 Suever,感谢您的回复。但是,在您的情况下, dm 是绝对值。在我的例子中,dm 是有符号的值。以上是关于在 MATLAB 中找到三维矩阵中的有符号最小值的主要内容,如果未能解决你的问题,请参考以下文章