【问题标题】:Get first two maximum values in matrix获取矩阵中的前两个最大值
【发布时间】:2012-10-12 15:48:45
【问题描述】:

我有一个矩阵 (n x m)。而且我想知道,对于每一行,包含前两个最大值的列的索引:

2 3 4 2
2 4 7 1
1 1 2 4
5 5 9 6
1 4 2 1
9 8 1 2

答案应该是:

2 3
2 3
3 4
3 4
2 3
1 2

如何使用 matlab 命令获取它?我不想使用 for 循环。我试过了:

[x,y]=max(matrix')
y=y';

y 给了我最大元素的列索引。现在我将这些元素设置为零并重复说明,但我不知道该怎么做。我颤抖:

matrix(:,y)=0;

但它不起作用。

【问题讨论】:

    标签: matlab matrix max


    【解决方案1】:

    如果 A 是您的矩阵,则排序并选择前两个索引,

     [a ix]=sort(A,2)
     ans= ix(:,end-1:end)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多