GNU Octave:如何找到向量的 n 个最大元素

mir*_*ehr 4 max vectorization octave

我在 Octave 中有这样的向量:

[ 4 5 1 2 3 6 ]
Run Code Online (Sandbox Code Playgroud)

是否有函数返回该向量的 n 个最大元素,在本例中,最大的三个元素是 6、5 和 4?

[6 5 4]
Run Code Online (Sandbox Code Playgroud)

Octave max 函数仅返回一个最大元素。我想要n个最大元素。

Eri*_*ski 5

在 GNU Octave 中,获取向量的最大 n 个元素:

octave:2> X = [3 8 2 9 4]
octave:2> sort(X)

ans =
   2   3   4   8   9

octave:8> sort(X)(end-2:end)

ans =

   4   8   9
Run Code Online (Sandbox Code Playgroud)

描述

意思sort(X)(end-2:end)是“对向量X进行排序,并给出从2减去末尾到末尾的元素,也称为最后3个元素”。