取模函數mod與取余函數的區別


例子:

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中根據需要使用相應的函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM