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