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