MATLAB 中的累积和
序列的累积和是序列的运行和或部分和。
The cumulative sums of the sequence {a,b,c,…}, are a, a+b, a+b+c, ….
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);
输出 :