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


Julia sum用法及代码示例


用法一

sum(f, itr; [init])

itr 的每个元素调用函数 f 的结果求和。

返回类型为Int 用于小于系统字长的有符号整数,而UInt 用于小于系统字长的无符号整数。对于所有其他参数,找到一个公共返回类型,所有参数都被提升到该类型。

itr 返回的值可以由 init 指定。它必须是加法标识(即零),因为未指定 init 是否用于非空集合。

Julia 1.6

关键字参数 init 需要 Julia 1.6 或更高版本。

例子

julia> sum(abs2, [2; 3; 4])
29

请注意 sum(A)reduce(+, A) 对于具有小整数 eltype 的数组的重要区别:

julia> sum(Int8[100, 28])
128

julia> reduce(+, Int8[100, 28])
-128

在前一种情况下,整数被扩大到系统字大小,因此结果为 128。在后一种情况下,不会发生这种扩大,整数溢出导致 -128。

用法二

sum(itr; [init])

返回集合中所有元素的总和。

返回类型为Int 用于小于系统字长的有符号整数,而UInt 用于小于系统字长的无符号整数。对于所有其他参数,找到一个公共返回类型,所有参数都被提升到该类型。

itr 返回的值可以由 init 指定。它必须是加法标识(即零),因为未指定 init 是否用于非空集合。

Julia 1.6

关键字参数 init 需要 Julia 1.6 或更高版本。

另请参阅: reduce mapreduce count union

例子

julia> sum(1:20)
210

julia> sum(1:20; init = 0.0)
210.0

用法三

sum(A::AbstractArray; dims)

对给定维度上的数组元素求和。

例子

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

julia> sum(A, dims=1)
1×2 Matrix{Int64}:
 4  6

julia> sum(A, dims=2)
2×1 Matrix{Int64}:
 3
 7

用法四

sum(f, A::AbstractArray; dims)

在给定维度上对数组的每个元素调用函数 f 的结果求和。

例子

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

julia> sum(abs2, A, dims=1)
1×2 Matrix{Int64}:
 10  20

julia> sum(abs2, A, dims=2)
2×1 Matrix{Int64}:
  5
 25

相关用法


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