模运算通常也称为模运算,返回的值也是模运算。

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中可以根据需要使用适当的函数。