Matlab数据处理之累积最大值函数cummax

4.7
(3)

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

Matlab数据处理之累积最大值函数cummax

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

>> help cummax
 cummax Cumulative largest component.
    Y = cummax(X) computes the cumulative largest component of X along
    the first non-singleton dimension of X. Y is the same size as X.
  
    Y = cummax(X,DIM) cumulates along the dimension specified by DIM.
  
    Y = cummax(___,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, cummax 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]
 
    cummax(X,1) is [0 4 3  and cummax(X,2) is [0 4 4
                    6 5 3]                     6 6 6]
 
    cummax(X,1,'reverse') is [6 5 3  and cummax(X,2,'reverse') is [4 4 3
                              6 5 2]                               6 5 3]

cummax函数常见用法

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

cummax函数语法说明

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

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

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

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

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

cummax函数实例

向量中的累积最大值

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

>> v = randi(10,1,10)

v =

     9    10     2    10     7     1     3     6    10    10

>> M = cummax(v)

M =

     9    10    10    10    10    10    10    10    10    10

矩阵列中的累积最大值

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

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

A =

     3     5     2
     1     6     3
     7     8     1

>> M = cummax(A)

M =

     3     5     2
     3     6     3
     7     8     3
Matlab数据处理之累积最大值函数cummax

矩阵行中的累积最大值

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

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

A =

     3     5     2
     1     6     3
     7     8     1

>> M = cummax(A,2)

M =

     3     5     5
     1     6     6
     7     8     8

反向的累积最大数组值

计算 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 = cummax(A,3,'reverse')

M(:,:,1) =

     9    10
    11    12


M(:,:,2) =

     9    10
    11    12


M(:,:,3) =

     5     6
     7     8
Matlab数据处理之累积最大值函数cummax

包含 NaN 值的向量

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

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

M =

     3     5     5     9     9     9

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

我在Matlab 2016中运行后报错如下:

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

下面,给出官方的运行结果

>> M = cummax(A,'includenan')
M = 1×6

     3     5   NaN   NaN   NaN   NaN

共计3人评分,平均4.7

到目前为止还没有投票~

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

让我们改善这篇文章!

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

文章目录

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

(0)
微信公众号
古哥的头像古哥管理团队
上一篇 2023年03月31日 21:09
下一篇 2023年04月04日 07:54

你可能感兴趣的文章

发表回复

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