例子:
mod(12,5) = 2
rem(12,5) = 2
然而,mod(12,-5) = -3 mod(-12,5) = 3
rem(12,-5) = 2 rem(-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 向0取整,為2; 12 - 5*2 = 2; 所以rem(12,5) = 2.
rem(12,-5) = 2
12/-5 = -2.4 向0取整,為-2; 12 - (-5)*(-2) = 2; 所以rem(12,-5) = 2.
rem(-12,5) = -2
-12/5 = -2.4 向0取整,為-2; -12 - 5*(-2) = -2; 所以rem(12,5) = -2.
顯然rem(X,Y)的計算公式為:X - fix(X./Y).*Y
根據以上,我們可以在matlab中根據需要使用相應的函數。
