matlab取模与取余

mod函数采用floor,rem函数采用fix函数。那么什么是floor和fix?

  • fix(x):截尾取整。如:

>> fix([3.4 , -3.4])

ans =

3 -3

  • floor(x):高斯取整(不超过x的最大整数)。如:

>> floor([3.4 , -3.4])

ans =

3 -4

PS:顺便再说下另外两个取整函数ceil()和round()

ceil(x) : 大于x 的最小整数。如:

>> ceil([3.4 , -3.4])

ans =

4 -3

round(x):四舍五入取整。如:

>> round([3.4 , 3.6 , -3.4 , -3.6])

ans =

3 4 -3 -4

总结为:fix朝零方向取整,floor朝负无穷方向取整,ceil朝正无穷方向取整,round四舍五入到最近的整数

下面说回取模的事情……

公式是:值 = 被除数 - (商 * 除数)(商通过floor函数得到)

如mod(-1000 , 201) = -1000 - (-5 * 201) = 5

而mod(1000 , -201) = 1000 - (-5 * -201) = -5

rem也同理,用该公式计算,不过是使用的fix函数。对于小数也同样适用。