2026a
# cumsum
累积和
# 语法
B = cumsum(A)
B = cumsum(A, dims=dim)
# 说明
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。