matlab如何在矩阵中获取最小值及其索引

时间:2016-03-14 20:01:13

标签: matlab min

我有一个矩阵让我们这样说

A=[1 3 6 2 0 4
   6 8 9 5 1 4
   7 2 7 8 9 2]

我希望获得给定行的最小值(r),并且该列位于间隔([c.. c+x])中。我也想要索引(它的列数)。 我可以用

获得分钟
MinVal=min(A(r,c:c+x))

示例

MinVal=min(A(2,3:3+2))

会给我

 % MinVal= 1

此MinVal的索引为I= 5,因为它位于第5列(我已知道该行并且不需要它)。

但如何获得这个指数?

如果我喜欢这样,我就得不到我想要的东西

 [MinVal,I]=min(A(r,c:c+x))

1 个答案:

答案 0 :(得分:0)

它可能不是最短的代码,但却是一种易于理解的可能性:

创建一个掩码,指明您在子矩阵中使用的变量:

 M=false(size(A));
 M(r,c:c+x)=true; %use the same indexing operation

转换为线性指数:

M=find(M);

并使用它将I转换为完整矩阵中的索引:

M(I)