2026a

# rem


除后的余数

# 语法

r = rem(a,b)

# 说明

r = rem(a,b) 返回 a 除以 b 后的余数,其中 a 是被除数,b 是除数。此函数通常称为求余运算,表达式为 r = a - b.*trunc(a./b)。rem 函数遵从:当 a 为浮点型时,rem(a,0) 返回 NaN;当 a 为整型时,rem(a,0)会报错。但 rem(a,0.0) 会一直返回 NaN。示例

# 示例

标量被除后的余数

计算 23 对 5 取模。

a = 23
b = 5
r = rem(a,b)
r = 3
向量被除后的余数

计算一个整数向量除以除数 3 的余数。

a = 1:5
b = 3
r = rem.(a,b)
b = 5-element Vector{Int64}:
 1
 2
 0
 1 
 2
正值和负值被除后的余数

计算一个含正负值的整数集被除后的余数。请注意,非零结果的符号与被除数相同。

a = [-4 -1 7 9]
b = 3
r = rem.(a,b)
r = 1×4 Matrix{Int64}:
 -1  -1  1  0
浮点值被除后的余数

计算多个角除以除数 2*pi 后的余数。rem 将尝试补偿浮点四舍五入取整的影响,以尽可能生成精确的整数结果。

theta = [0.0 3.5 5.9 6.2 9.0 4*pi]
b = 2*pi
r = rem.(theta,b)
r = 1×6 Matrix{Float64}:
 0.0  3.5  5.9  6.2  2.71681  0.0

# 输入参数

a - 被除数
标量 | 向量 | 矩阵 | 多维数组

被除数,指定为标量、向量、矩阵或多维数组。a 必须是任意数值类型的实数值数组。输入 a 和 b 必须具有相同的大小或具有兼容的大小(例如,a 是一个 M×N 矩阵,b 是标量或 1×N 行向量)。

数据类型: Int | Float | Bool

b - 除数
标量 | 向量 | 矩阵 | 多维数组

除数,指定为标量、向量、矩阵或多维数组。b 必须是任意数值类型的实数值数组。输入 a 和 b 必须具有相同的大小或具有兼容的大小(例如,a 是一个 M×N 矩阵,b 是标量或 1×N 行向量)。

数据类型: Int | Float | Bool

# 详细信息

mod 和 rem 的区别

除后所得余数的概念的定义不是唯一的,两个函数 mod 和 rem 各计算不同的结果。mod 函数生成一个为零或与除数具有相同符号的结果。rem 函数生成一个为零或与被除数具有相同符号的结果。

mod 和 rem 函数都遵从:当 a 为浮点型时,mod(a,0) 返回 NaN;当 a 为整型时,mod(a,0)会报错。但 mod(a,0.0) 会一直返回 NaN。

两个结果都有其各自的用途。例如,在进行信号处理时,mod 函数可在周期信号上下文中使用,因为其输出是周期性的(周期等于除数)。

# 另请参阅

mod | div