如何在 scilab 的矩阵中保存前 4 个最大数字的索引

How do I save the indices of the top 4 maximum numbers in a matrix in scilab

我需要保存最多4个数字的索引 例如,我需要获取第 10,9,7,5

行的索引
5.0259327
4.7127487
4.8435524
4.8538644
5.1048996
6.2441973
5.9413803
6.2912638
5.1117512
5.8309519
5.7419509
6.9663477
5.9958319
6.9519781
6.5802736
6.7327558
7.6765878

我用过

[mA,nA]=max(distA) 
where mA is the row and nA is the column

在获得一个最大数量,但我无法弄清楚如何在不重复的情况下选择另一个最大数量。我无法排序,因为我需要索引。

你可以使用这个小技巧。

 [output_val, output_index] = max(input_mat(input_mat < max(input_mat)))

这将为您提供第二大元素的值和索引。然后类似地,你可以为 4 个数字做。

您可以使用 gsort 函数:

 [S,ind]=gsort(distA,"g","d");

4 个最大元素的索引由

给出
 ind(1:4)