MATLAB常用语句(1)---rem 和mod

    科技2022-07-20  134

    rem 和 mod (除后的余数)

    语法: r=rem(a,b) ; b=mod(a,m)

    其中 a 是被除数:

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

    如果 a 和 b 是持续时间数组,则它们必须具有相同的大小,除非其中一个为标量。如果一个输入是持续时间数组,则另一个输入可以是持续时间数组或数值数组。在此上下文中,rem 将数值视为标准 24 小时制的数字。

    如果一个输入是整数数据类型,则另一输入必须是相同的整数类型或 double 标量。

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

    举例: (1) 标量被除后的余数

    a = 23; b = 5; r = rem(a,b)

    r = 3

    b = mod(23,5)

    b = 3

    (2) 向量被除后的余数

    a = 1:5; b = 3; r = rem(a,b)

    r= 1×5

    1 2 0 1 2 a = 1:5; m = 3; b = mod(a,m)

    b = 1×5

    1 2 0 1 2

    (3)正值和负值被除后的余数

    a = [-4 -1 7 9]; b = 3; r = rem(a,b)

    r = 1×4

    -1 -1 1 0

    (注意结果是与被除数的符号一致)

    a = [-4 -1 7 9]; m = 3; b = mod(a,m)

    b = 1×4

    2 2 1 0

    (注意结果是与除数的符号一致)

    (4)浮点值被除后的余数

    theta = [0.0 3.5 5.9 6.2 9.0 4*pi]; b = 2*pi; r = rem(theta,b)

    r = 1×6

    0 3.5000 5.9000 6.2000 2.7168 0 theta = [0.0 3.5 5.9 6.2 9.0 4*pi]; m = 2*pi; b = mod(theta,m)

    b = 1×6

    0 3.5000 5.9000 6.2000 2.7168 0

    mod 和 rem之间的区别:

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

    另一个差别是当除数为零时的约定。mod 函数遵从 mod(a,0) 返回 a 的约定,而 rem 函数遵从 rem(a,0) 返回 NaN 的约定。

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

    Processed: 0.010, SQL: 8