0

假设我有一个矩阵

A=[2 3 4; 6 1 2]

我想找到 2 个最大的元素并使所有其他元素为零。在这种情况下,A 最终变成

A=[0 0 4; 6 0 0]
4

2 回答 2

2

你的行动路线应该是:

  1. 对矩阵进行降序排序,得到排序后元素的索引顺序。
  2. 丢弃前两个索引并使用其余索引将 中的相应元素清零A

例子

A = [2 3 4; 6 1 2];
[Y, idx] = sort(A(:), 'descend')
A(idx(3:end)) = 0

这应该导致:

A =
     0     0     4
     6     0     0
于 2013-03-07T17:14:56.513 回答
1
>> A=[2 3 4; 6 1 2]
A =
     2     3     4
     6     1     2
>> [~,idx] = sort(A(:), 'descend');
>> A(idx(3:end))=0
A =
     0     0     4
     6     0     0
于 2013-03-07T17:17:34.270 回答