如何在matlab中找到数组中的n个最大元素,并使其他元素为零?
假设我有一个矩阵如何在matlab中找到数组中的n个最大元素,并使其他元素为零?,matlab,matrix,Matlab,Matrix,假设我有一个矩阵 A=[2 3 4; 6 1 2] 我想找到两个最大的元素,把所有其他元素都设为零。 在这种情况下,A最终成为 A=[0 0 4; 6 0 0] 你的行动方针应该是: 将矩阵按降序排序,并获得已排序元素的索引顺序 丢弃前两个索引,并使用其余索引将A中的相应元素归零 例子 这将导致: A = 0 0 4 6 0 0 你的行动方针应该是: 将矩阵按降序排序,并获得已排序元素的索引顺序 丢弃前两个索引,并使用其余索引将A中的相应
A=[2 3 4; 6 1 2]
我想找到两个最大的元素,把所有其他元素都设为零。
在这种情况下,A最终成为
A=[0 0 4; 6 0 0]
你的行动方针应该是:
A
中的相应元素归零A =
0 0 4
6 0 0
你的行动方针应该是:
A
中的相应元素归零A =
0 0 4
6 0 0
你对我来说太快了,@EitanT。然后那些触摸打字课真的有回报了:)你对我来说太快了,@EitanT。然后那些触摸打字课真的有回报了:)@Shai不完全是重复的。想法是相似的,但这里两个最大的元素可以有相同的值…@Shai不完全是重复的。这个想法很相似,但这里两个最大的元素可以有相同的值。。。
>> 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