# mink
计算数组的 k 个最小元素。
函数库: TyBase
# 语法
B = mink(A,k)
B = mink(A,k,dims)
B = mink(___;comparisonmethod = "auto", nargout = 1)
B,I = mink(___;nargout = 2)
# 说明
B = mink(A,k) 返回 A 的 k 个最小元素。示例
如果 A 是向量,则 mink 返回一个向量,其中包含 A 的 k 个最小元素;
如果 A 是矩阵,则 mink 返回一个矩阵,该矩阵的列包含 A 的每一列中的 k 个最小元素;
如果 A 是多维数组,则 mink 返回大小不等于 1 的第一个维度上的 k 个最小元素。
B = mink(A,k,dim) 确定 A 在维度 dim 上的 k 个最小元素。示例
B = mink(___;comparisonmethod = "auto", nargout = 1) 为上述任何语法指定如何比较 A 的元素,此项为可选项。例如,mink(A,k,"abs") 根据绝对值返回 A 的 k 个最小元素。示例
B,I = mink(___;nargout = 2) 计算 A 的 k 个最小值的索引,并在 I 中返回这些索引。示例
# 示例
最小向量元素
using TyBase
A = 1:10;
B = TyBase.mink(A,3)
3-element Vector{Int64}:
1
2
3
矩阵行的最小元素
using TyBase
using TyMath
A = magic(5)
5×5 Matrix{Int64}:
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 = TyBase.mink(A,3,2)
5×3 Matrix{Int64}:
1 8 15
5 7 14
4 6 13
3 10 12
2 9 11
复数向量
using TyBase
A = [2-2im 5+im -7-3im -1+im]
1×4 Matrix{Complex{Int64}}:
2-2im 5+1im -7-3im -1+1im
B,I = TyBase.mink(A,2,comparisonmethod="abs";nargout=2)
B = 2-element Vector{Complex{Int64}}:
-1 + 1im
2 - 2im
I = 2-element view(::Vector{Int64}, 1:2) with eltype Int64:
4
1
# 输入参数
A - 输入数组
向量 | 矩阵 | 多维数组
如果 A 是向量,则 mink 返回一个向量,其中包含 A 的 k 个最小元素;
如果 A 是矩阵,则 mink 返回一个矩阵,该矩阵的列包含 A 的每一列中的 k 个最小元素;
如果 A 是多维数组,则 mink 返回大小不等于 1 的第一个维度上的 k 个最小元素。
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Bool
复数支持: 是
k - 最小值的个数
非负整数
要返回的最小值的个数,指定为非负整数。
数据类型: Integer
dim - 运算维度
正整数
运算维度,指定为正整数。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。
以一个 m×n 输入矩阵 A 为例:
- mink(A,k,1) 计算 A 的每列中的 k 个最小值,并返回一个 k×n 矩阵;
- mink(A,k,2) 计算 A 的每行中的 k 个最小值,并返回一个 m×k 矩阵。
数据类型: Integer
comparisonmethod - 比较方法
"auto" (默认) | "real" | "abs"
比较方法,指定为以下选项之一:
"auto" - 当 A 为实数时,按 real(A) 对输入 A 的元素进行比较;当 A 为复数时,按 abs(A) 进行比较;
"real" - 当 A 为实数或复数时,按 real(A) 对输入 A 的元素进行比较。如果 A 包含具有相等实部的元素,则使用 imag(A) 进行排序;
"abs" - 当 A 为实数或复数时,按 abs(A) 对输入 A 的元素进行比较。如果 A 包含具有相等模的元素,则使用区间 (-π,π] 中的 angle(A) 进行排序。
数据类型: String
nargout - 控制输出参数Int
nargout 控制输出参数的个数。
数据类型: Int
# 输出参数
B - 输出数组
标量 | 向量 | 矩阵 | 多维数组
输出数组,以标量、向量、矩阵或多维数组形式返回。mink 按照从小到大的顺序返回 k 个元素。
I - 索引数组
标量 | 向量 | 矩阵 | 多维数组
索引数组,以向量、矩阵或多维数组形式返回。I 的大小与 B 相同。
# 另请参阅
maxk | ty_minimum | topkrows