MATLAB中的累积和

MATLAB中的累积和

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

序列{a,b,c,…}的累积和是a, a+b, a+b+c, ….

MATLAB允许我们使用cumsum()方法来计算矢量、矩阵的累积和。cumsum()方法的不同语法如下。

  • B = cumsum(A)
  • B = cumsum(A,dim)
  • B = cumsum(___,direction)
  • B = cumsum(___,nanflag)

让我们详细讨论一下上述语法。

cumsum(A)

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

示例 1:

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

输出:

MATLAB中的累积和

示例 2:

% 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中的累积和

cumsum(A,dim)

  • 返回矩阵A的累积和以及每个dim的累积和。
  • dim有两个值1或2。
  • dim=1,指的是沿着每一列。
  • dim=2,沿每行指代。
% 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中的累积和

cumsum(___,direction)

  • 返回输入向量或矩阵在给定方向上的累积和。
  • 方向有两个值 “正向 “或 “反向”。
  • 如果方向是’反向’,则反向计算累积和,即如果我们沿每一列考虑矩阵,则返回从每一列的底部到顶部开始的累积和。
% 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中的累积和

cumsum(___,nanflag)

  • nanflag值决定在累积和中是否包括或排除向量的NaN值。
  • nanflag有两个值’includenan’或’omitnan’,分别对应于包括NaN元素和排除NaN元素。
  • omitNaN’认为NaN值为0 .

注意: NaN + number = NaN

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

输出 :

MATLAB中的累积和

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程