當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。