MATLAB的取整与取余函数
-
(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
的一样,而
mod
和
y<
/p>
一样。
这
是由于这两个函数的生成机制不同,
rem
函数采用
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
即:
36
除以
10
的整数商为
3
,
加<
/p>
1
后为
4
;
p>
其与除数之积为
40
;
再与被数之差为
(
40-36=4
)
;
取除数的符号。所以值为
-4
p>
。
例:
mod(9,1.2)=0.6
例:
>> mod(5,2)
ans =1
%“
< br>除数
”
是正,
“
余数
”
就是正
>> mod(-5,2)
ans =1
>> mod(5,-2)