使用 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