当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia cumsum用法及代码示例


用法一

cumsum(A; dims::Integer)

沿维度 dims 的累积和。另请参阅 cumsum! 以使用预分配的输出数组,以提高性能和控制输出的精度(例如,避免溢出)。

例子

julia> a = [1 2 3; 4 5 6]
2×3 Matrix{Int64}:
 1  2  3
 4  5  6

julia> cumsum(a, dims=1)
2×3 Matrix{Int64}:
 1  2  3
 5  7  9

julia> cumsum(a, dims=2)
2×3 Matrix{Int64}:
 1  3   6
 4  9  15

注意

返回数组的eltype 对于小于系统字长的有符号整数是Int,对于小于系统字长的无符号整数是UInt。为了保留eltype 的小有符号或无符号整数数组,应使用accumulate(+, A)

julia> cumsum(Int8[100, 28])
2-element Vector{Int64}:
 100
 128

julia> accumulate(+,Int8[100, 28])
2-element Vector{Int8}:
  100
 -128

在前一种情况下,整数被扩大到系统字大小,因此结果是 Int64[100, 128] 。在后一种情况下,不会发生这种扩大,并且整数溢出会导致 Int8[100, -128]

用法二

cumsum(itr)

累积和一个迭代器。另请参阅 cumsum! 以使用预分配的输出数组,以提高性能和控制输出的精度(例如,避免溢出)。

Julia 1.5

非数组迭代器上的cumsum 至少需要 Julia 1.5。

例子

julia> cumsum([1, 1, 1])
3-element Vector{Int64}:
 1
 2
 3

julia> cumsum([fill(1, 2) for i in 1:3])
3-element Vector{Vector{Int64}}:
 [1, 1]
 [2, 2]
 [3, 3]

julia> cumsum((1, 1, 1))
(1, 2, 3)

julia> cumsum(x^2 for x in 1:3)
3-element Vector{Int64}:
  1
  5
 14

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.cumsum — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。