matlab—fix,floor,ceil,round区别,mod与rem区别

matlab——fix,floor,ceil,round区别

总结为:fix朝零方向取整,floor朝负无穷方向取整,ceil朝正无穷方向取整,round四舍五入到最近的整数

 

(1)fix(x):截尾取整。如:

>> fix([3.4 , -3.4])

ans =

3 -3

(2)floor(x):高斯取整(不超过x的最大整数)。如:

>> floor([3.4 , -3.4])

ans =

3 -4

(3)ceil(x) : 大于x 的最小整数。如:

>> ceil([3.4 , -3.4])

ans =

4 -3

(4)round(x):四舍五入取整。如:

>> round([3.4 , 3.6 , -3.4 , -3.6])

ans =

3 4 -3 -4


取模(mod)与取余(rem)的区别

通常取模运算也叫取余运算,它们返回结果都是余数,rem和mod唯一的区别在于:


rem(a,b) 与 mod(a,b)

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

当a和b的异号时(当是小数时也是这个运算规律),rem结果与a相同,而mod结果与b相同

 

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

rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix朝零方向取整,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)

即:公式是:值 = 被除数 - (商 * 除数),(商通过floor或fix函数得到)

 

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

例:mod(9,1.2)=0.6; 

例:mod(-1000 , 201) = -1000 - (-5 * 201) = 5

例:mod(1000 , -201) = 1000 - (-5 * -201) = -5
 

>> mod(5,2)
ans =1                   %“除数”是正,“余数”就是正
>> mod(-5,2)
ans =1
>> mod(5,-2)
ans =-1                  %“除数”是负,“余数‘就是负
>> mod(-5,-2)
ans =-1                  %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同
>> rem(5,2)
ans =1                   %“被除数”是正,“余数”就是正
>> rem(5,-2); 
ans =1
>> rem(-5,2)
ans =-1                 %“被除数”是负,“余数”就是负
>> rem(-5,-2)
ans =-1


 

 

 

 

 

 

你可能感兴趣的:(4.,matlab)