Main Content

maxk

计算数组的 k 个最大元素

说明

示例

B = maxk(A,k) 返回 Ak 个最大元素。

  • 如果 A 是向量,则 maxk 返回一个向量,其中包含 Ak 个最大元素。

  • 如果 A 是矩阵,则 maxk 返回一个矩阵,此矩阵的列中包含 A 的每一列中的 k 个最大元素。

  • 如果 A 是多维数组,则 maxk 返回大小不等于 1 的第一个维度上的 k 个最大元素。

示例

B = maxk(A,k,dim) 确定 A 在维度 dim 上的 k 个最大元素。

示例

B = maxk(___,'ComparisonMethod',c) 为上述任何语法指定如何比较 A 的元素,此项为可选项。例如,maxk(A,k,'ComparisonMethod','abs') 根据绝对值返回 Ak 个最大元素。

示例

[B,I] = maxk(___) 计算 Ak 个最大值的索引,并在 I 中返回这些索引。

示例

全部折叠

计算向量的 3 个最大元素。

A = 1:10;
B = maxk(A,3)
B = 1×3

    10     9     8

计算矩阵中每一行的 3 个最大元素。

A = magic(5)
A = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

B = maxk(A,3,2)
B = 5×3

    24    17    15
    23    16    14
    22    20    13
    21    19    12
    25    18    11

根据模计算复数向量的 2 个最大元素,并返回它们在输入向量中的索引。

A = [2-2i 5+i -7-3i -1+i]
A = 1×4 complex

   2.0000 - 2.0000i   5.0000 + 1.0000i  -7.0000 - 3.0000i  -1.0000 + 1.0000i

[B,I] = maxk(A,2,'ComparisonMethod','abs')
B = 1×2 complex

  -7.0000 - 3.0000i   5.0000 + 1.0000i

I = 1×2

     3     2

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

  • 如果 A 是向量,则 maxk 返回一个向量,其中包含 Ak 个最大元素。

  • 如果 A 是矩阵,则 maxk 返回一个矩阵,此矩阵的列中包含 A 的每一列中的 k 个最大元素。

  • 如果 A 是多维数组,则 maxk 返回大小不等于 1 的第一个维度上的 k 个最大元素。

如果 A 的类型为 categorical,则它必须是有序的。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | categorical | datetime | duration
复数支持:

要返回的最大值的个数,指定为正整数标量。如果 k 大于或等于运算维度中的元素数,则 maxk 沿该维度对输入数组进行排序。

运算维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。

以一个 m×n 输入矩阵 A 为例:

  • maxk(A,k,1) 计算 A 的每列中的 k 个最大值,并返回一个 k×n 矩阵。

    maxk(A,k,1) column-wise operation

  • maxk(A,k,2) 计算 A 的每行中的 k 个最大值,并返回一个 m×k 矩阵。

    maxk(A,k,2) row-wise operation

比较方法,指定为以下选项之一:

  • 'auto' - 当 A 为实数时,按 real(A) 对输入 A 的元素进行比较;当 A 为复数时,按 abs(A) 进行比较。

  • 'real' - 当 A 为实数或复数时,按 real(A) 对输入 A 的元素进行比较。如果 A 包含具有相等实部的元素,则使用 imag(A) 进行排序。

  • 'abs' - 当 A 为实数或复数时,按 abs(A) 对输入 A 的元素进行比较。如果 A 包含具有相等模的元素,则使用区间 (-π,π] 中的 angle(A) 进行排序。

输出参数

全部折叠

输出数组,以标量、向量、矩阵或多维数组形式返回。maxk 按照从大到小的顺序返回 k 个元素。B 中元素的顺序会保留 A 中任何相等元素的顺序。

索引数组,以向量、矩阵或多维数组形式返回。I 的大小与 B 相同。如果输出数组 B 包含重复的元素,则它们的索引在 I 中的顺序与它们在输入数组中的顺序一致。

扩展功能

版本历史记录

在 R2017b 中推出

另请参阅

| |