【问题标题】:Index of minimum element of matrix [duplicate]矩阵最小元素的索引[重复]
【发布时间】:2014-09-22 03:37:20
【问题描述】:

如何找到矩阵最小元素的(i, j) 索引?

例如:

M = [3 6 2; 5 5 9; 1 4 4];

我想得到输出(3, 1)

【问题讨论】:

    标签: matlab


    【解决方案1】:

    试试这个:

    M = [3 6 2; 5 5 9; 1 4 4];
    [~, ind] = min(M(:));
    [i, j] = ind2sub(size(M), ind);
    

    【讨论】:

      【解决方案2】:
      [r,c]=find(M==min(M(:)))
      

      希望这会有所帮助...

      【讨论】:

      • 在此处比较浮点数时可能会遇到问题。
      • @excaza 我不明白为什么会有问题,min 不执行任何计算,所以它应该返回完全匹配
      • @excaza - 不应该有浮点比较问题。首先,您从该数组中检索最小浮点值,然后您将从该数组中提取的 this exact 值与该数组中的所有其他点进行比较。如果您提取最小值,然后对矩阵进行一些计算,然后尝试进行比较,这只会是一个问题......我基本上只是在反刍丹所说的话,但我只想投入我的两分钱在。
      【解决方案3】:
      [value,index] = min(M(:))
      

      会给:

      value = 1
      index = 3
      

      【讨论】:

      • 这不是所要求的,您可以在您的 index 值上调用 sub2ind 以获得正确答案,但是当 OP 要求下标索引时,这是一个线性索引
      • 哦,该死的,你对我误读了这个问题感到抱歉。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      相关资源
      最近更新 更多