注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

rem和mod的区别  

2011-08-16 10:38:05|  分类: M&M |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
话说这两个函数都是在MATLAB中求余数的,不过同样功能的函数为什么要两个呢?
其实这两个函数是有区别的:
看下面的例子:
>> format compact
>> rem(13,3)
ans =
     1
>> mod(13,3)
ans =
     1
>> rem(13,-3)
ans =
     1
>> rem(-13,3)
ans =
    -1
>> mod(13,-3)
ans =
    -2
>> mod(-13,3)
ans =
     2
>> rem(-13,-3)
ans =
    -1
>> mod(-13,-3)
ans =
    -1
列表如下:

被除数

除数

mod

rem

13

3

1

1

13

-3

-2

1

-13

3

2

-1

-13

-3

-1

-1

 有什么特点呢?

对于符号相同的两个数而言,mod和rem没有什么区别,商为正数

对于符号不同的两个数,mod的结果是和除数的符号保持一致的,而rem则是让结果和被除数保持一致。

这是从表象看,那么本质原因又是怎样的呢?

这个要从fix和floor说起。

fix是朝着0的方向取整,而floor是向负无穷方向取整。

于是fix函数一定有如下关系:

|fix(x)|<=|x|,

只有x为整数的时候取等号因为总是朝向坐标原地取整

而floor函数一定有如下关系:

floor(x)<x

因为取整的结果是不大于该数的

举个简单的例子:

>> A=[fix(pi) floor(pi)]

A =

     3     3

>> B=[fix(3.7) floor(3.7)]

B =

     3     3

>> C=[fix(-pi) floor(-pi)]

C =

    -3    -4

>> D=[fix(-3.7) floor(-3.7)]

D =

    -3    -4

好了,那么fix和floor与mod和rem的关系到底如何呢?

rem(x,y)返回x - n*y,其中n = fix(x/y),

mod(x,y)返回x - n*y,其中n = floor(x/y)




  评论这张
 
阅读(2308)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016