Matlab中,可以使用cummin函数表示一组数据的累积最小值。累积最小值,沿其大小不为 1 的第一个数组维度运算返回累积最小值。关于最小值函数min的相关介绍,可以参考文章:《Matlab数据处理之使用min函数获取数组最小值》。
本文主要介绍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
矩阵行中的累积最小值
计算 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
包含 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'。
由于版本问题,我这里运算报错了,下面是官方的答案。
>> M = cummin(A,'includenan')
M = 1×6
3 3 NaN NaN NaN NaN
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/5021.html