作业帮 > 综合 > 作业

matlab里rem和mod函数区别?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 15:00:51
matlab里rem和mod函数区别?
据说rem(x,y)的ans符号与x相同,mod(x,y)的ans符号与y相同,
但是自己试程序的时候发现结果是不一样的
>> rem(-12.2,2)
ans =
-0.2000
>> mod(-12.2,2)
ans =
1.8000
为什么用mod()函数的结果会得到1.
没问题啊,mod函数的结果与y符号相同,这里y=2是正数,所以得到的是1.8.
 
mod(x,y)和rem(x,y)的计算表达式都是
x - n.*y
但n的定义不同,对于rem
n = fix(x./y) = -6
而对于mod
n = floor(x./y) = -7
所以
rem(-12.2,2) = -12.2 - (-6)*2 = -0.2
mod(-12.2,2) = -12.2 - (-7)*2 = 1.8
 
概括起来:如果x、y同号,rem和mod结果相同;如果x、y不同号,则rem(x,y)的符号与x相同,mod(x,y)的符号与y相同.
再问: 我的意思是,这两个函数不都是除后面那个数再取余数吗?为什么一个是0.2一个是1.8呢?
再答: 我上面说的还不够清楚吗? 所谓“取余数”,就是从被除数中减去除数的整数倍,而这个“整数倍”的整数对于mod和rem的含义不同,所以会有结果的差异。