前言
这些天在看matlab的基础部分,其中用到了最基本的运算-----取模运算,由于之前的编程一直是在类C的语言中进行的,所涉及到的取模运算只有%运算。
虽然在matlab中,有rem,mod两种取模运算,但是如不稍加注意,是很容易忽视其区别,以至于认为两者等价。
实际上
>> rem(5,-2)
ans =
1
>>mod(5,-2)
ans =
-1
通过查阅相关资料,特整理以下博文。
摘要
要理解两者之间的区别,我们只需要关注y≠0的情况下即可。
当y≠0时:
rem (x, y ) = x –fix(x./y).*y
mod (x, y) = x –floor(x./y).*y