matlab中的rem()mod() floor() round() ceil()函式
阿新 • • 發佈:2019-01-06
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相反