matlab里rem和mod函数区别?

据说rem(x,y)的ans符号与x相同,mod(x,y)的ans符号与y相同,是这样嘛~~?但是自己试程序的时候发现结果是不一样的>>rem(-12.2,2)ans=-... 据说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.8?
展开
 我来答
百度网友79faf363
2019-11-24 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:54.8万
展开全部

rem和mod的区别只有一点:

当x和y的正负号一样的时候,两个函数结果是等同的;

当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。

rem函数采用fix函数,mod函数采用了floor函数。fix函数和mod函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入。

rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)。

扩展资料:

两个异号整数取模取值规律:

先将两个整数看作是正数,再作除法运算:

能整除时,其值为0;

不能整除时,其值=除数×(整商+1)-被除数

例如:mod(36,-10)=-4

即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被数之差为(40-36=4);取除数的符号。所以值为-4。

例:mod(9,1.2)=0.6;

tianxiawulang
推荐于2017-09-27 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2652万
展开全部

没问题啊,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的含义不同,所以会有结果的差异。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我行我素850915
推荐于2017-09-06 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1760万
展开全部
rem(x,y)与mod(x,y)的区别:
当x,y同号时,rem与mod结果相同;
当x,y异号时,rem(x,y)与x同号,mod(x,y)与y同号。
在算法上:
rem(x,0)是NaN.
rem(x,x), 当 x~=0, 是 0.
rem(x,y), 当 x~=y 和 y~=0时, 与 x同号.

mod(x,0) 是 x.
mod(x,x) 是 0.
mod(x,y), 当 x~=y 和 y~=0时, 与 y同号.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9e9b632
2015-09-22 · TA获得超过847个赞
知道小有建树答主
回答量:247
采纳率:50%
帮助的人:25.7万
展开全部
没问题啊,mod函数的结果与y符号相同,这里y=2是正数,所以得到的是1.8。

mod(x,y)和rem(x,y)的计算表达式都是

1

x - n.*y

但n的定义不同,对于rem

1

n = fix(x./y) = -6

而对于mod

1

n = floor(x./y) = -7

所以

1
2

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相同。
所谓“取余数”,就是从被除数中减去除数的整数倍,而这个“整数倍”的整数对于mod和rem的含义不同,所以会有结果的差异。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
福源5019
2018-05-14
知道答主
回答量:2
采纳率:0%
帮助的人:1679
展开全部

MATLAB文档中介绍:rem(X,Y) and mod(X,Y) are equal if X and Y have the same sign, but differ by Y if X and Y have different signs. Notice that rem retains the sign of X, while mod retains the sign of Y. 如果X和Y同号,则rem与mod等价;否则,不相同。rem的结果与X符号相同,mod的符号与Y相同。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式