2026a

# cumsum


累积和

# 语法

B = cumsum(A)
B = cumsum(A, dims=dim)

# 说明

B = cumsum(A) 返回向量元素的累积和。示例


B = cumsum(A, dims=dim) 返回沿维度 dim 的元素的累积和,关键字参数 dims 不可省略。例如,如果 A 是矩阵,则 cumsum(A, dims=2) 返回每行的累积和。示例

# 示例

向量的累积和

计算从 1 到 5 的整数的累积和。元素 B[2] 是 A[1] 和 A[2] 的和,而 B[5] 是元素 A[1] 至 A[5] 的和。

A = collect(1:5)
B = cumsum(A)
B = 5-element Vector{Int64}:
1
3
6
10
15
矩阵中每列的累积和

定义其元素与其线性索引对应的 3×3 矩阵。

A = [1 4 7;2 5 8;3 6 9]
A = 3×3 Matrix{Int64}:
1      4      7
2      5      8
3      6      9
B = cumsum(A, dims = 1)
B = 3×3 Matrix{Int64}:
1       4       7
3       9      15
6      15      24
矩阵中每行的累积和

定义其元素与其线性索引对应的 2×3 矩阵。

A = [1 3 5;2 4 6]
A = 2×3 Matrix{Int64}:
1      3      5
2      4      6
B = cumsum(A, dims = 2)
B = 2×3 Matrix{Int64}:
1      4       9
2      6      12
逻辑输入的累积和

创建一个逻辑值数组。

A = [true false true; true true false]
A = 2×3 Matrix{Bool}:
1      0      1
1      1      0

计算 A 的行的累积和。

B = cumsum(A, dims = 2)
B = 2×3 Matrix{Int64}:
1      1      2
1      2      2
包含 NaN 值的向量

创建一个包含 NaN 值的向量,并计算累积和。默认情况下,cumsum 包括 NaN 值。如果您在计算中包括 NaN 值,则只要在 A 中遇到第一个 NaN 值,累积和将立即成为 NaN。

A = [3,5,NaN,9,0,NaN]
B = cumsum(A)
B = 6-element Vector{Float64}:
3.0
8.0
NaN
NaN
NaN
NaN

# 输入参数

A - 输入数组
标量 | 向量 | 矩阵 | 多维数组 | 元组

数据类型: Int | Float

复数支持:

dims - 沿其运算的维度
正整数标量

沿其运算的维度,指定为正整数标量。当输入为矩阵或多维数组(n>2)时必须指定维度 dims。

以一个二维输入数组 A 为例:

  • cumsum(A, dims = 1) 对 A 的列中的连续元素进行累积求和;
  • cumsum(A, dims = 2) 对 A 的行中的连续元素进行累积求和。

如果 dims 大于 ndims(A),则 cumsum 返回 A。

# 另请参阅

+ | sum | diff | prod