模运算通常也称为模运算,返回的值也是模运算。
mod(x,y ) and rem(X ) x,y ) are equal if X and Y have the same sign,butdifferbyifxandyhavedifferentsigns。
这句话的意思是,如果x、y的符号相同,则mod函数和rem函数相等,否则不同。
请看以下示例:
mod (12,5 )=2
rem (12,5 )=2
但mod(12,-5)=-3mod )-12,5 )=3
rem(12,-5)=2rem )-12,5 )=-2
其原因在于rem函数采用fix函数,是固定取靠近0的那个整数,即舍去小数取整;mod函数采用floor函数,是向下取整,取小于等于这个数的第一个整数。
请考虑一下该如何计算mod(x,y )
mod (12,5 )=2
12/5=2.4向下舍入,2; 12 – 5*2=2; 所以mod (12,5 )=2。
mod(12,-5)=-3
12/-5=-2.4向下舍入为-3; 12–5(*(-3 )=-3; 所以mod(12,-5)=-3。
mod (-12,5 )=3
-12/5=-2.4向下舍入为-3; -12-5*(-3 )=3; 所以mod (-12,5 )=3。
显然,mod(x,y )的计算公式是x-floor ) x./y ).*Y
让我们来看看rem(x,y )的计算方法
rem (12,5 )=2
12/5=2.4取整数,取2; 12 – 5*2=2; 所以rem (12,5 )=2。
rem(12,-5)=2
12/-5=-2.4取整数,取-2; 12–5(*(-2 )=2; 因此,rem(12,-5)=2。
rem (-12,5 )=-2
-12/5=-2.4取整数,取-2; -12-5*(-2 )=-2; 所以rem (12,5 )=-2。
显然,rem(x,y )的计算公式是x-fix(x./y ).*Y
如上所述,在matlab中可以根据需要使用适当的函数。