📜  MATLAB 中的累积和

📅  最后修改于: 2022-05-13 01:54:52.317000             🧑  作者: Mango

MATLAB 中的累积和

序列的累积和是序列的运行和或部分和。

MATLAB 允许我们使用 cumsum()方法计算向量、矩阵的累积和。 cumsum() 方法的不同语法是:

  • B = 总和(A)
  • B = cumsum(A,dim)
  • B = cumsum(___,方向)
  • B = cumsum(___,nanflag)

让我们详细讨论上述语法:

累积总和(A)

  • 该方法返回从数组 A 开头开始的A 的累积和。
  • 如果A 是向量,则返回序列 A 的累积和
  • 如果A 是矩阵,则它返回沿 A 每一列的累积和。

示例 1:



Matlab
% Input vector
A = 2:8;
 
B = cumsum(A);
 
% Displays cumulative sums
% of A
disp(B)


Matlab
% Input matrix
A = [1 4 7; 2 5 8; 3 6 9];
disp("Matrix :")
disp(A)
 
B = cumsum(A);
 
% Display cumulative sum of matrix A
disp("Cumulative sum :")
disp(B)


Matlab
% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative sum along each
% row from left to right
B = cumsum(A,2);
disp("Cumulative sum :")
disp(B)


Matlab
% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative sum of A along each
% row starting from right to left
B = cumsum(A,2,'reverse');
disp("Cumulative sum :")
disp(B)


Matlab
% Input vector
A = [3 5 NaN 9 0 NaN];
disp("Vector :");
disp(A);
 
% Including NaN values
B = cumsum(A,'includenan');
disp("Cumulative sum Incude NaN :");
disp(B);
 
% Excluding NaN values
B = cumsum(A,'omitnan');
disp("Cumulative sum Exclude NaN :");
disp(B);



输出 :

示例 2:

MATLAB

% Input matrix
A = [1 4 7; 2 5 8; 3 6 9];
disp("Matrix :")
disp(A)
 
B = cumsum(A);
 
% Display cumulative sum of matrix A
disp("Cumulative sum :")
disp(B)

输出 :

cumsum(A,dim)

  • 返回矩阵 A的累积和以及每个dim
  • dim取两个值1 或 2
  • dim = 1 ,指的是每一列。
  • dim = 2 ,指的是每一行。

MATLAB



% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative sum along each
% row from left to right
B = cumsum(A,2);
disp("Cumulative sum :")
disp(B)

输出 :

cumsum(___,方向)

  • 返回输入向量或矩阵在给定方向上的累积和
  • 方向采用两个值“向前”或“反向”
  • 如果方向是'reverse' ,则反向计算累积总和,即如果我们考虑沿每列的矩阵,则它返回从每列底部到顶部开始的累积总和。

MATLAB

% input matrix
A = [1 3 5; 2 4 6];
disp("Matrix :")
disp(A)
 
% Cumulative sum of A along each
% row starting from right to left
B = cumsum(A,2,'reverse');
disp("Cumulative sum :")
disp(B)

输出 :

cumsum(___,nanflag)

  • nanflag值决定是否在累积和中包含或排除向量的 NaN 值。
  • nanflag取两个值'includenan' 或 'omitnan' 分别对应于包含 NaN 元素和排除 NaN 元素。
  • 'omitNaN'NaN值视为0

注意: NaN + 数字 = NaN

MATLAB

% Input vector
A = [3 5 NaN 9 0 NaN];
disp("Vector :");
disp(A);
 
% Including NaN values
B = cumsum(A,'includenan');
disp("Cumulative sum Incude NaN :");
disp(B);
 
% Excluding NaN values
B = cumsum(A,'omitnan');
disp("Cumulative sum Exclude NaN :");
disp(B);

输出 :