2026a
# sum
数组求和
函数库: TyMath
# 语法
S = sum(A)
S = sum(A, dims=dim)
S = sum(A, init=a)
S = sum(f, A)
# 说明
S = sum(A, dims=dim) 可指定对数组的某一维度 dim 进行求和,关键字参数 dims 不可省略,例如对二维矩阵列进行求和:sum(A, dims=1)。示例
S = sum(A, init=a) 指定初始求和元素为 a,关键字参数 init 不可省略。示例
S = sum(f, A) 对于数组 A 的每个元素调用函数 f 的结果进行求和。示例
# 示例
数组元素的总和
创建一个向量并计算各个元素的总和。
A = collect(1:10)
S = sum(A)
S = 55
创建一个矩阵并计算元素的总和。
A = [1 3 2;4 2 5;6 1 4]
A = 3×3 Matrix{Int64}:
1 3 2
4 2 5
6 1 4
S = sum(A)
S = 28
矩阵列总和
创建一个矩阵并计算每列中元素的总和。
A = [1 3 2;4 2 5;6 1 4]
A = 3×3 Matrix{Int64}:
1 3 2
4 2 5
6 1 4
S = sum(A, dims = 1)
S = 1×3 Matrix{Int64}:
11 6 11
矩阵行总和
创建一个矩阵并计算每行中元素的总和。
A = [1 3 2;4 2 5;6 1 4]
A = 3×3 Matrix{Int64}:
1 3 2
4 2 5
6 1 4
S = sum(A, dims = 2)
S = 3×1 Matrix{Int64}:
6
11
11
数组切片总和
使用向量维度参数来操作数组的特定切片。
创建所有元素为 1 的三维数组。
A = ones(4,3,2)
要对 A 的每个页中的所有元素求和,请使用向量维度参数指定要求和的维度(行和列)。两个页均为 4×3 的全 1 矩阵,因此每页的总和为 12。
S1 = sum(A, dims = [1 2])
S1 = 1×1×2 Array{Float64, 3}:
[:, :, 1] =
12.0
[:, :, 2] =
12.0
如果沿第一个维度对 A 进行切片,则可以对得到的 4 个页的元素求和,每个页为 3×2 矩阵。
S2 = sum(A, dims = [2 3])
S2 = 4×1×1 Array{Float64, 3}:
[:, :, 1] =
6.0
6.0
6.0
6.0
沿第二个维度切片,每个页的总和是一个 4×2 矩阵的元素之和。
S3 = sum(A, dims = [1 3])
S3 = 1×3×1 Array{Float64, 3}:
[:, :, 1] =
8.0 8.0 8.0
三维数组的总和
创建一个由 1 值组成的 4×2×3 数组,并计算沿第三个维度的总和。
A = ones(4,2,3)
S = sum(A, dims = 3)
S = 4×2×1 Array{Float64, 3}:
[:, :, 1] =
3.0 3.0
3.0 3.0
3.0 3.0
3.0 3.0
设置初始求和元素
sum(1:10, init = 0+0im)
ans = 55 + 0im
sum(1:10, init = 1+0im)
ans = 56 + 0im
调用函数并求和
求向量元素的平方和。
sum(abs2, [2, 3, 4])
ans = 29
32 位整数之和
创建一个由 32 位整数组成的向量,并将结果转化为 Int32 类型。
A = collect(Int32, 1:10)
S = Int32(sum(A))
S = 55
总和,不包括 NaN
创建一个向量并计算其总和,不包括 NaN 值。
A = [1.77, -0.005, 3.98, -2.95, NaN, 0.34, NaN, 0.19]
S = sum(filter(!isnan, A))
S = 3.3249999999999997
# 输入参数
A - 输入数组标量 | 向量 | 矩阵 | 多维数组
数据类型: Int | Float
复数支持: 是
dims - 沿其运算的维度正整数标量 | 正整数向量
沿其运算的维度,指定为正整数标量或正整数向量。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。
以一个二维输入数组 A 为例:
- sum(A,dims = 1) 对 A 的列中的连续元素进行求和并返回一个包含每列之和的 1×n 矩阵。
- sum(A,dims = 2) 对 A 的行中的连续元素进行求和并返回一个包含每行累积和的 n×1 矩阵。
当 dims 大于 ndims(A) 时,sum 返回 A。
init - 初始值标量
初始求和元素,指定为标量。
数据类型: Int | Float
复数支持: 是
f - 元素处理规则函数
元素处理规则,指定为函数。对数组中元素进行处理后再用 sum 函数进行元素求和。