Matlab中min函数的使用

目录

语法

说明

示例

向量中的最小元素

最小复数元素

每个矩阵列中的最小元素

每个矩阵行中的最小元素

存在 NaN 时的最小元素

最小元素索引

数组页面的最小值

返回线性索引

最小元素比较


        min函数的功能是求数组的最小元素。

语法

M = min(A)
M = min(A,[],dim)
M = min(A,[],nanflag)
M = min(A,[],dim,nanflag)
[M,I] = min(___)
M = min(A,[],'all')
M = min(A,[],vecdim)
M = min(A,[],'all',nanflag)
M = min(A,[],vecdim,nanflag)
[M,I] = min(A,[],'all',___)
[M,I] = min(A,[],___,'linear')
C = min(A,B)
C = min(A,B,nanflag)
___ = min(___,'ComparisonMethod',method)

说明

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

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

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

  • 如果 A 是多维数组,则 min(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度的大小将变为 1,而所有其他维度的大小保持不变。如果 A 是第一个维度为 0 的空数组,则 min(A) 返回与 A 大小相同的空数组。

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

​​​​​​​​M = min(A,[],nanflag) 指定在计算中包括还是忽略 NaN 值。例如,min(A,[],'includenan') 包括 A 中的所有 NaN 值,而 min(A,[],'omitnan') 忽略这些值。

​​​​​​​​M = min(A,[],dim,nanflag) 还指定使用 nanflag 选项时的运算维度。

​[M,I] = min(___) 在上述语法基础上返回 A 中最小值在运算维度上的索引。

​M = min(A,[],'all') 查找 A 的所有元素的最小值。此语法适用于 MATLAB® R2018b 及更高版本。

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

​​​​​​​​​M = min(A,[],'all',nanflag) 计算在使用 nanflag 选项时 A 的所有元素的最小值。

M = min(A,[],vecdim,nanflag) 指定在使用 nanflag 选项时要运算的多个维度。

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

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

​C = min(A,B,nanflag) 还指定如何处理 NaN 值。

示例

向量中的最小元素

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

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

存在 NaN 时的最小元素

        创建一个向量并计算其最小值,不包括 NaN 值。

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = min(A,[],'omitnan')
M = -2.9500

        由于 'omitnan' 是默认选项,因此 min(A) 也将生成此结果。使用 'includenan' 标志可返回 NaN。

M = min(A,[],'includenan')
M = NaN

最小元素索引

        创建一个矩阵 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(:,:,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

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

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

返回线性索引

        创建一个矩阵 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

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

        以一个二维输入数组 A 为例:

  • 如果 dim = 1,则 min(A,[],1) 返回包含每列中的最小元素的行向量。

  • 如果 dim = 2,则 min(A,[],2) 返回包含每行中的最小元素的列向量。

        如果 dim 大于 ndims(A),则 min 返回 A。

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

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

​        其他输入数组,指定为标量、向量、矩阵或多维数组。数值输入 A 和 B 必须具有相同的大小或兼容的大小(例如,A 是 M×N 矩阵,B 是标量或 1×N 行向量)。

        如果 A 和 B 是日期时间、持续时间或分类数组,则它们必须具有相同的大小,除非其中一个为标量。

  • A 和 B 的数据类型必须相同,除非其中一个是 double。如果是那样,另一个数组的数据类型可以是 single、duration 或任何整数类型。

  • 如果 A 和 B 均为有序分类数组,则必须具有相同的类别集(具有相同的顺序)。

​        A 或 B 中的最小元素,以标量、向量、矩阵或多维数组的形式返回。C 的大小由 A 和 B 的维度的隐式扩展决定。有关详细信息,可以参考基本运算的兼容数组大小

        C 的数据类型取决于 A 和 B 的数据类型:​

  • 如果 A 和 B 是相同的数据类型,则 C 与 A 和 B 的数据类型匹配。

  • 如果 A 或 B 为 single,则 C 为 single。

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

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值