使用 MATLAB 的累积和

Ammar Ali 2022年5月11日
使用 MATLAB 的累积和

本教程将讨论使用 MATLAB 中的 cumsum() 函数查找向量或矩阵的累积和。

使用 MATLAB 中的 cumsum() 函数获取向量或矩阵的累积和

我们可以使用 MATLAB 的内置函数 cumsum() 来查找向量或矩阵的累积和。

如果输入是向量,则 cumsum() 函数将返回向量元素的累积和。如果输入是矩阵,则 cumsum() 函数将返回矩阵列的累积和。

如果输入是多维数组,则 cumsum() 函数将返回第一个非单维的累积和。例如,让我们找出向量元素的累积和。

请参阅下面的代码。

clc
v = 1:9
s = cumsum(v)

输出:

v =

     1     2     3     4     5     6     7     8     9


s =

     1     3     6    10    15    21    28    36    45

让我们找出矩阵的累积和。请参阅下面的代码。

clc
v = [1:3; 1:3]
s = cumsum(v)

输出:

v =

     1     2     3
     1     2     3


s =

     1     2     3
     2     4     6

在输出中,变量 s 包含每列的累积和。我们还可以通过在 cumsum() 函数中传递一个整数作为第二个参数来查找列中行的累积总和。

例如,让我们找到上述矩阵的行的累积和。请参阅下面的代码。

clc
v = [1:3; 1:3]
s = cumsum(v,2)

输出:

v =

     1     2     3
     1     2     3


s =

     1     3     6
     1     3     6

在输出中,变量 s 包含每行的累积总和。

我们还可以找到逻辑输入的累积总和。在这种情况下,cumsum() 函数将使用 0 代替 false,而 1 为 true,答案将是 double 数据类型。

我们还可以反转向量或矩阵中的累积和。默认情况下,cumsum() 函数从向量或矩阵的左侧开始查找累积和,但我们也可以通过在向量或矩阵内部使用字符串 reverse 来查找从向量或矩阵右侧开始的累积和 cumsum() 函数。

例如,让我们从向量的右侧开始计算累积和。请参阅下面的代码。

clc
v = 1:3
s = cumsum(v,'reverse')

输出:

v =

     1     2     3


s =

     6     5     3

在输出中,累积总和从右侧开始。如果我们在向量或矩阵中有 NaN 值并找到它的累积和,一旦遇到第一个 NaN 值,cumsum() 函数就会将输出值转换为 NaN。

为了避免 NaN 值,我们可以使用 omitnan 字符串作为 cumsum() 函数中的参数告诉函数忽略 NaN 值。例如,让我们创建一个包含一些 NaN 值的向量,并使用 cumsum() 函数找到它的累积和。

请参阅下面的代码。

clc
v = [1 NaN 5 6 7 NaN NaN]
s = cumsum(v,'omitnan')

输出:

v =

     1   NaN     5     6     7   NaN   NaN


s =

     1     1     6    12    19    19    19

cumsum() 函数计算累积总和,忽略输出中的 NaN 值。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Vector