Matlab取整函數有: fix, floor, ceil, round.具體應用方法如下:
fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor,顧名思義,就是地板,所以是取比它小的整數,即朝負無窮方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1
ceil,與floor相反,它的意思是天花板,也就是取比它大的最小整數,即朝正無窮方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2
round四舍五入到最近的整數,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。
取模(mod)與取余(rem)的不同:
通常取模運算也叫取余運算,它們返回結果都是余數.rem和mod唯一的區別在於:
當x和y的正負號一樣的時候,兩個函數結果是等同的;當x和y的符號不同時,rem函數結果的符號和x的一樣,而mod和y一樣。 這是由於這兩個函數的生成機制不同,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=floor(x./y) 兩個異號整數取模取值規律 (當是小數時也是這個運算規律,這一點好像與C語言的不太一樣) 先將兩個整數看作是正數,再作除法運算 ①能整除時,其值為0 ②不能整除時,其值=除數×(整商+1)-被除數 例:mod(36,-10)=-4 即:36除以10的整數商為3,加1后為4;其與除數之積為40;再與被數之差為(40-36=4);取除數的符號。所以值為-4。 例:mod(9,1.2)=0.6 例: >> 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 |