Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab中找到数组中的n个最大元素,并使其他元素为零?_Matlab_Matrix - Fatal编程技术网

如何在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