Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

min

数组的最小元素

说明

M = min(A) 返回数组的最小元素。

  • 如果 A 是向量,则 min(A) 返回 A 的最小值。

  • 如果 A 为矩阵,则 min(A) 是包含 A 的每一列的最小值的行向量。

  • 如果 A 是多维数组,则 min(A) 沿大小大于 1A 的第一个维度计算,并将这些元素视为向量。此维度中 M 的大小变为 1,而所有其他维度的大小仍与在 A 中相同。如果 A 是第一个维度长度为零的空数组,则 M 是与 A 大小相同的空数组。

  • 如果 A 是表或时间表,则 min(A) 返回单行表,其中包含每个变量的最小值。 (自 R2023a 起)

示例

M = min(A,[],"all") 返回 A 的所有元素的最小值。

示例

M = min(A,[],dim) 返回维度 dim 上的最小元素。例如,如果 A 为矩阵,则 min(A,[],2) 返回包含每一行的最小值的列向量。

示例

M = min(A,[],vecdim) 返回向量 vecdim 所指定的维度上的最小值。例如,如果 A 是矩阵,则 min(A,[],[1 2]) 返回 A 中所有元素的最小值,因为矩阵的每个元素包含在由维度 1 和 2 定义的数组切片中。

示例

M = min(A,[],___,missingflag) 指定在上述任一语法的基础上是省略还是包含 A 中的缺失值。例如,min(A,[],"includemissing") 在计算最小值时包括所有缺失值。默认情况下,min 会忽略缺失值。

示例

[M,I] = min(___) 还返回 A 中最小值第一次在运算维度上出现时的对应索引。

示例

[M,I] = min(A,[],___,"linear") 还返回 A 中最小值在 A 中的线性索引。

示例

C = min(A,B) 返回从 AB 中提取的最小元素的数组。

示例

C = min(A,B,missingflag) 还指定如何处理缺失值。

___ = min(___,"ComparisonMethod",method) 为上述任何语法指定如何比较元素,此项为可选项。例如,对于向量 A = [-1 2 -9],语法 min(A,[],"ComparisonMethod","abs") 根据绝对值比较 A 的元素并返回最小值 -1

示例

全部折叠

创建一个向量并计算其最小元素。

A = [23 42 37 15 52];
M = min(A)
M = 15

创建一个复数向量并计算其最小元素,即具有最小幅值的元素。

A = [-2+2i 4+i -1-3i];
min(A)
ans = -2.0000 + 2.0000i

创建一个矩阵并计算每列中的最小元素。

A = [2 8 4; 7 3 9]
A = 2×3

     2     8     4
     7     3     9

M = min(A)
M = 1×3

     2     3     4

创建一个矩阵并计算每行中的最小元素。

A = [1.7 1.2 1.5; 1.3 1.6 1.99]
A = 2×3

    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900

M = min(A,[],2)
M = 2×1

    1.2000
    1.3000

创建一个三维数组并计算每页数据(行和列)的最小值。

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [9 13; -5 7];
A(:,:,3) = [4 4; 8 -3];
M1 = min(A,[],[1 2])
M1 = 
M1(:,:,1) =

    -2


M1(:,:,2) =

    -5


M1(:,:,3) =

    -3

要计算一个数组的所有维度上的最小值,可以在向量维度参量中指定每个维度,或使用 "all" 选项。

M2 = min(A,[],[1 2 3])
M2 = -5
Mall = min(A,[],"all")
Mall = -5

创建一个包含 NaN 值的矩阵。

A = [1.77 -0.005 3.98 -2.95; NaN 0.34 NaN 0.19]
A = 2×4

    1.7700   -0.0050    3.9800   -2.9500
       NaN    0.3400       NaN    0.1900

计算矩阵的最小值,包括缺失值。对于包含任一 NaN 值的矩阵列,最小值为 NaN

M = min(A,[],"includemissing")
M = 1×4

       NaN   -0.0050       NaN   -2.9500

创建一个矩阵 A 并计算每列中的最小元素,以及这些元素在 A 中显示的行索引。

A = [1 9 -2; 8 4 -5]
A = 2×3

     1     9    -2
     8     4    -5

[M,I] = min(A)
M = 1×3

     1     4    -5

I = 1×3

     1     2     2

创建一个矩阵 A,并返回矩阵 M 中每行的最小值。使用 "linear" 选项还可以返回线性索引 I,满足 M = A(I)

A = [1 2 3; 4 5 6]
A = 2×3

     1     2     3
     4     5     6

[M,I] = min(A,[],2,"linear")
M = 2×1

     1
     4

I = 2×1

     1
     2

minvals = A(I)
minvals = 2×1

     1
     4

创建一个矩阵并返回其各个元素与标量相比的最小值。

A = [1 7 3; 6 2 9]
A = 2×3

     1     7     3
     6     2     9

B = 5;
C = min(A,B)
C = 2×3

     1     5     3
     5     2     5

输入参数

全部折叠

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

  • 如果 A 是复矩阵,则 min(A) 返回幅值最小的复数。如果幅值相等,则 min(A) 返回具有最小幅值和最小相位角的值。

  • 如果 A 是标量,则 min(A) 返回 A

  • 如果 A 为 0×0 空数组,则 min(A) 也是空数组。

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

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

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

维度 dim 表示长度减至 1 的维度。size(M,dim)1,而所有其他维的大小保持不变,除非 size(A,dim)0。如果 size(A,dim)0,则 min(A,dim) 返回与 A 大小相同的空数组。

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

  • min(A,[],1) 计算 A 的每列中元素的最小值,并返回一个 1×n 行向量。

    min(A,[],1) column-wise operation

  • min(A,[],2) 计算 A 的每行中元素的最小值,并返回一个 m×1 列向量。

    min(A,[],2) row-wise operation

维度向量,指定为正整数向量。每个元素代表输入数组的一个维度。指定的操作维度的输出长度为 1,而其他保持不变。

以 2×3×3 输入数组 A 为例。然后 min(A,[],[1 2]) 返回 1×1×3 数组,其元素是在 A 的每个页面上计算的最小值。

Mapping of a 2-by-3-by-3 input array to a 1-by-1-by-3 output array

缺失值条件,指定为下表中的值之一。

输入数据类型描述
"omitmissing"所有支持的数据类型忽略输入数组中的缺失值,并基于较少的点计算最小值。如果运算维度中的所有元素都缺失,则 M 中的对应元素也会缺失。
"omitnan"double, single, duration
"omitnat"datetime
"omitundefined"categorical
"includemissing"所有支持的数据类型

计算最小值时包括输入数组中的缺失值。如果运算维度中的任一元素缺失,则 M 中的对应元素也会缺失。

"includenan"double, single, duration
"includenat"datetime
"includeundefined"categorical

其他输入数组,指定为标量、向量、矩阵、多维数组、表或时间表。输入 AB 必须具有相同的大小或具有兼容的大小(例如,A 是一个 M×N 矩阵,B 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小

  • 如果 AB 均为数组,则它们的数据类型必须相同,除非其中一个是 double。如果是那样,另一个数组的数据类型可以是 singleduration 或任何整数类型。

  • 如果 AB 均为有序 categorical 数组,则必须具有顺序相同的同一类别集。

  • 如果 AB 是表或时间表,则另一个输入可以是数组、表或时间表。

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

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

数值输入的比较方法,指定为以下值之一:

  • "auto" - 对于数值输入数组 A,当 A 为实数时,按 real(A) 比较元素,当 A 为复数时,按 abs(A) 比较元素。

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

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

输出参量

全部折叠

最小值,以标量、向量、矩阵、多维数组或表的形式返回。size(M,dim)1,而所有其他维度的大小与 A 中的相应维度的大小匹配,除非 size(A,dim)0。如果 size(A,dim)0,则 M 是大小与 A 相同的空数组。

索引,以标量、向量、矩阵或多维数组或表形式返回。I 的大小与第一个输出相同。

当未指定 "linear" 时,I 是运算维度上的索引。当指定了 "linear" 时,I 包含最小值在 A 中的线性索引。

如果最小元素出现多次,则 I 包含值的第一次出现位置的索引。

AB 中的最小元素,以标量、向量、矩阵、多维数组、表或时间表形式返回。C 的大小由 AB 的维度的隐式扩展决定。有关详细信息,请参阅基本运算的兼容数组大小

C 的数据类型取决于 AB 的数据类型:

  • 如果 AB 是相同的数据类型,则 CAB 的数据类型匹配。

  • 如果 ABsingle,则 Csingle

  • 如果 AB 为整数数据类型且另一个为标量 double,则 C 采用整数数据类型。

  • 如果 AB 是表或时间表,则 C 也是表或时间表。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

函数