取模函数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