MATLAB的取整与取余函数

温柔似野鬼°
866次浏览
2021年02月12日 12:09
最佳经验
本文由作者推荐

-

2021年2月12日发(作者:米老鼠开火车)



(1)fix(x) :


截尾取整



>> fix( [3.12 -3.12])


ans =



3



-3


(2)floor(x):


不超过


x


的最大整数


.(


高斯取整


)


>> floor( [3.12 -3.12])


ans =



3



-4


(3)ceil(x) :


大于


x


的最小整数



>> ceil( [3.12 -3.12])


ans =



4



-3


(4)


四舍五入取整



>> round([3.12 -3.12])


ans =



3



-3


取模(


mod

< br>)与取余(


rem


)的不同:



通常取模运算也叫取余运算,它们返回结果都是余数


.rem< /p>



mod


唯一的区别在于


:






x



y

的正负号一样的时候,


两个函数结果是等同的;



x



y


的符号不同时,


rem


函数结果的符号和


x

< p>
的一样,而


mod



y< /p>


一样。




这 是由于这两个函数的生成机制不同,


rem


函数采用

< p>
fix


函数,而


mod


函 数采用了


floor


函数(这两个函数是用来取整的,


fix


函数向


0


方向舍 入,


floor


函数向无穷小方向舍入)。


rem



x



y


)命令返回的是


x-n .*y


,如果


y


不等于


0


,其中的


n = fix(x./y)


,而


mod(x,y)



回 的是


x-n.*y


,当


y


不等于


0


时,


n=floo r(x./y)


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



(当是小数时也是这个运算规律,这一点好像与


C


语言的


不太一样)



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



①能整除时,其值为


0


②不能整除时 ,其值


=


除数


×


(


整商


+1)-


被除数



例:


mod(36,-10)=-4

< p>
即:


36


除以


10


的整数商为


3



加< /p>


1


后为


4



其与除数之积为


40


再与被数之差为



40-36=4




取除数的符号。所以值为


-4




例:


mod(9,1.2)=0.6


例:



>> mod(5,2)


ans =1


%“

< br>除数



是正,



余数



就是正



>> mod(-5,2)


ans =1


>> mod(5,-2)


-


-


-


-


-


-


-


-