Matlab数据处理之累积最小值函数cummin

4.7
(3)

Matlab中,可以使用cummin函数表示一组数据的累积最小值。累积最小值,沿其大小不为 1 的第一个数组维度运算返回累积最小值。关于最小值函数min的相关介绍,可以参考文章:《Matlab数据处理之使用min函数获取数组最小值》。

Matlab数据处理之累积最小值函数cummin

本文主要介绍cummin函数的常见用法、语法说明,以及一些常用实例。cummin的帮助文档如下:

>> help cummin
 cummin Cumulative smallest component.
    Y = cummin(X) computes the cumulative smallest component of X along
    the first non-singleton dimension of X. Y is the same size as X.
  
    Y = cummin(X,DIM) cumulates along the dimension specified by DIM.
  
    Y = cummin(___,DIRECTION) cumulates in the direction specified by
    the string DIRECTION using any of the above syntaxes:
      'forward' - (default) uses the forward direction, from beginning to end.
      'reverse' -           uses the reverse direction, from end to beginning.
 
    If X is complex, cummin compares the magnitude of the elements of X.
    In the case of equal magnitude elements, the phase angle is also used.
 
    Example: If X = [0 4 3
                     6 5 2]
 
    cummin(X,1) is [0 4 3  and cummin(X,2) is [0 0 0
                    0 4 2]                     6 5 2]
 
    cummin(X,1,'reverse') is [0 4 2  and cummin(X,2,'reverse') is [0 3 3
                              6 5 2]                               2 2 2]

cummin函数常见用法

M = cummin(A)
M = cummin(A,dim)
M = cummin(___,direction)
M = cummin(___,nanflag)

cummin函数语法介绍

M = cummin(A) 返回 A 的累积最小元素。默认情况下,cummin(A) 沿其大小不为 1 的第一个数组维度运算。

  • 如果 A 为向量,则 cummin(A) 返回一个包含 A 的累积最小值的等大小向量。
  • 如果 A 是矩阵,则 cummin(A) 返回一个等大小的矩阵,其中包含 A 的各列中的累积最小值。
  • 如果 A 是多维数组,则 cummin(A) 沿 A 的大小不为 1 的第一个数组维度返回一个等大小的数组,其中包含累积最小值。

M = cummin(A,dim) 返回沿维度 dim 的累积最小值。例如,如果 A 是矩阵,则 cummin(A,2) 沿 A 的各行返回累积最小值。

M = cummin(_,direction) 可选择性地使用上述任何语法指定方向。必须指定 A,也可以指定 dim。例如,cummin(A,2,’reverse’) 通过从尾到头计算 A 的第二个维度返回 A 的累积最小值。

M = cummin(_,nanflag) 指定在上述任意语法的计算中包括还是忽略 NaN 值。cummin(A,’includenan’) 会在计算中包括所有 NaN 值,而 cummin(A,’omitnan’) 则忽略这些值。

cummin函数实例

向量中的累积最小值

计算 1×10 随机整数向量的累积最小值。

>> v = randi([0,10],1,10)

v =

     8     9     1    10     6     1     3     6    10    10

>> M = cummin(v)

M =

     8     8     1     1     1     1     1     1     1     1

矩阵列中的累积最小值

计算 3×3 矩阵的各列的累积最小值。

>> A = [3 5 2; 1 6 3; 7 8 1]

A =

     3     5     2
     1     6     3
     7     8     1

>> M = cummin(A)

M =

     3     5     2
     1     5     2
     1     5     1
Matlab数据处理之累积最小值函数cummin

矩阵行中的累积最小值

计算 3×3 矩阵的各行的累积最小值。

>> A = [3 5 2; 1 6 3; 7 8 1]

A =

     3     5     2
     1     6     3
     7     8     1

>> M = cummin(A,2)

M =

     3     3     2
     1     1     1
     7     7     1

反向的累积最小数组值

计算 2×2×3 数组的第三个维度的累积最小值。将 direction 指定为 'reverse' 可从第三个维度的末尾向开头运算。

>> A = cat(3,[1 2; 3 4],[9 10; 11 12],[5 6; 7 8])

A(:,:,1) =

     1     2
     3     4


A(:,:,2) =

     9    10
    11    12


A(:,:,3) =

     5     6
     7     8

>> M = cummin(A,3,'reverse')

M(:,:,1) =

     1     2
     3     4


M(:,:,2) =

     5     6
     7     8


M(:,:,3) =

     5     6
     7     8
Matlab数据处理之累积最小值函数cummin

包含 NaN 值的向量

创建一个包含 NaN 值的向量,并计算累积最小值。默认情况下,cummin 忽略 NaN 值。

>> A = [3 5 NaN 9 0 NaN];
>> M = cummin(A)

M =

     3     3     3     3     0     0

如果您在计算中包括 NaN 值,则只要在 A 中遇到第一个 NaN 值,累积最小值将立即成为 NaN

>> M = cummin(A,'includenan')
错误使用 cummin
CUMMIN 方向必须为 'forward' 或 'reverse'。
Matlab数据处理之累积最小值函数cummin

由于版本问题,我这里运算报错了,下面是官方的答案。

>> M = cummin(A,'includenan')

M = 1×6

     3     3   NaN   NaN   NaN   NaN

共计3人评分,平均4.7

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/5021.html

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2023年03月27日 22:05
下一篇 2023年03月29日 22:08

你可能感兴趣的文章

发表回复

登录后才能评论
微信小程序
微信公众号