Matlab取整函数之Floor\fix\round\ceil取余函数rem\mod

matlab中有4个取整函数分别是Floor\fix\round\ceil

Floor

意译为:向负无穷大方向取整
语法
floor(X)
B = idivide(int32(TmpFloorNum),int32(9),‘floor’);

fix

意译为:向零方向取整
语法
fix(X)
B = idivide(int32(TmpFloorNum),int32(9),‘fix’);

round

意译为:向最近方向取整
语法
round(X)
B = idivide(int32(TmpFloorNum),int32(9),‘round’);

ceil

意译为:向向正无穷大方向取整方向取整
语法
ceil(X)
B = idivide(int32(TmpFloorNum),int32(9),‘ceil’);

matlab中有4个取余函数分别是rem\mod

rem

意译为:除后的余数

语法
r = rem(a,b)

说明
r = rem(a,b) 返回用 b 除以 a 后的余数,其中 a 是被除数,b 是除数。此函数通常称为求余运算,表达式为 r = a - b.*fix(a./b)。rem 函数遵从 rem(a,0) 是 NaN 的约定

例子

浮点值被除后的余数

计算多个角除以除数 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

         0    3.5000    5.9000    6.2000    2.7168         0
正值和负值被除后的余数

计算一个含正负值的整数集被除后的余数。请注意,非零结果的符号与被除数相同。
a = [-4 -1 7 9];
b = 3;
r = rem(a,b)

r = 1×4

    -1    -1     1     0
标量被除后的余数

计算 23 除以 5 后的余数。
a = 23;
b = 5;
r = rem(a,b)
r = 3
向量被除后的余数

计算一个整数向量除以除数 3 的余数。
a = 1:5;
b = 3;
r = rem(a,b)

r = 1×5

     1     2     0     1     2

mod

意译为:除后的余数(取模运算)

语法
b = mod(a,m)

说明
b = mod(a,m) 返回用 m 除以 a 后的余数,其中 a 是被除数,m 是除数。此函数通常称为取模运算,表达式为 b = a - m.*floor(a./m)。mod 函数遵从 mod(a,0) 返回 a 的约定。

例子

标量被除后的余数

计算 23 对 5 取模。
b = mod(23,5)
b = 3
向量被除后的余数

计算一个整数向量除以除数 3 的余数。
a = 1:5;
m = 3;
b = mod(a,m)

b = 1×5
     1     2     0     1     2
正值和负值被除后的余数

计算一个含正负值的整数集被除后的余数。请注意,如果除数为正数,则非零结果始终为正数。
a = [-4 -1 7 9];
m = 3;
b = mod(a,m)

b = 1×4
     2     2     1     0
用负除数除后的余数

计算一个整数集除以负除数后的余数,该整数集包括正值和负值。请注意,如果除数为负数,则非零结果始终为负数。
a = [-4 -1 7 9];
m = -3;
b = mod(a,m)

b = 1×4
    -1    -1    -2     0
浮点值被除后的余数

计算使用模数对 2*pi 多个角除后的余数。请注意,mod 将尝试补偿浮点四舍五入取整的影响,以尽可能生成精确的整数结果。
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

神奇的网站:https://ww2.mathworks.cn/help/matlab/ref/mod.html?searchHighlight=mod&s_tid=doc_srchtitle

猜你喜欢

转载自blog.csdn.net/qq_32642107/article/details/89485242