1. 程式人生 > >matlab中的rem()mod() floor() round() ceil()函式

matlab中的rem()mod() floor() round() ceil()函式

matlab的rem()和mod()函式(2010-11-16 13:39:55)轉載

rem(x,y):求整除x/y的餘數

mod(x,y):求模

rem(x,y)=x-y.*fix(x./y); (fix()向0取整)

mod(x,y)=x-y.*floor(x./y); (floor()向左取整)

如果x和y的符號相同(同為‘+’,同為‘-’),那麼rem(x,y)=mod(x,y)(正數與正數,負數與負數,取整結果兩個函式效果一樣)

如果x和y的符號相反,那麼mod(x,y)=rem(x,y)+y(正數與負數的取整,看你希望得到什麼結果就選擇用什麼函式)

當正數與負數取餘時,當得到的餘數結果的符號希望跟除數(x)一樣,用rem()函式;當得到的餘數結果的符號希望跟被除數(y)一樣,用mod()函式

例如:

rem(3,2)=1;mod(3,2)=1;

rem(-3,-2)=-1;mod(-3,-2)=-1;

rem(3,-2)=1;mod(3,-2)=-1;

rem(-3,2)=-1;mod(-3,2)=1;

mod(3,2)=rem(3,2)=1;

mod(3,-2)=rem(3,-2)-2=1-2=-1;

mod(-3,2)=rem(-3,2)+2=-1+2=1;

floor 向下取整,即朝負無窮方向舍入

round 取整,取最近的整數

ceil 是向離它最近的大整數圓整 如a = [-1.9, -0.2, 3.4, 5.6, 7, 2.4+3.6i] 圓整後:a=[-1,0,4, 6, 7 ,3+4i]

,與floor相反