mink
计算数组的 k
个最小元素
说明
示例
最小向量元素
矩阵行的最小元素
计算矩阵中每一行的 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 = mink(A,3,2)
B = 5×3
1 8 15
5 7 14
4 6 13
3 10 12
2 9 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] = mink(A,2,'ComparisonMethod','abs')
B = 1×2 complex
-1.0000 + 1.0000i 2.0000 - 2.0000i
I = 1×2
4 1
输入参数
A
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
如果
A
是向量,则mink
返回一个向量,其中包含A
的k
个最小元素。如果
A
是矩阵,则mink
返回一个矩阵,该矩阵的列包含A
的每一列中的k
个最小元素。如果
A
是多维数组,则mink
返回大小不等于 1 的第一个维度上的k
个最小元素。
如果 A
的类型为 categorical
,则它必须是有序的。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| categorical
| datetime
| duration
复数支持: 是
k
— 最小值的个数
非负整数标量
要返回的最小值的个数,指定为正整数标量。如果 k
大于或等于运算维度中的元素数,则 mink
沿该维度对输入数组进行排序。
dim
— 运算维度
正整数标量
运算维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。
以一个 m
×n
输入矩阵 A
为例:
mink(A,k,1)
计算A
的每列中的k
个最小值,并返回一个k
×n
矩阵。mink(A,k,2)
计算A
的每行中的k
个最小值,并返回一个m
×k
矩阵。
c
— 比较方法
'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)
进行排序。
输出参量
B
— 输出数组
标量 | 向量 | 矩阵 | 多维数组
输出数组,以标量、向量、矩阵或多维数组形式返回。mink
按照从小到大的顺序返回 k
个元素。
I
— 索引数组
标量 | 向量 | 矩阵 | 多维数组
索引数组,以向量、矩阵或多维数组形式返回。I
的大小与 B
相同。如果输出数组 B
包含重复的元素,则它们的索引在 I
中的顺序与它们在输入数组中的顺序一致。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
如果
A
是虚部全部为零的复数,则 MATLAB® 可能会在调用mink(A)
之前将A
转换为real(A)
。在这种情况下,MATLAB 会按real(A)
比较A
的元素,但生成的代码会按abs(A)
比较A
的元素。要使生成的代码与 MATLAB 匹配,请使用mink(real(A),k)
或mink(A,k,'ComparisonMethod','real')
。请参阅具有零值虚部的复数数据的代码生成 (MATLAB Coder)。如果提供
dim
,则它必须为常量。有关可变大小输入的限制,请参阅Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder)。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2017b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)