MATLAB mod和rem的用法區別

2021-08-15 19:36:56 字數 1120 閱讀 9470

昨天在學習matlab的數學函式時,教程中提到取模(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

慢慢體會,兩者確實不一樣

rem和mod的區別

matlab 如果你不仔細區分的話,可以把rem和mod都當作是求餘數的命令。比如,mod 3,2 ans 1 rem 3,2 ans 1可是,通過看他們的幫助檔案可以知道,這兩個數的符號一致時的結果是一樣的,但是當兩個數的符號不一樣時,就會出現不同了。mod 3,2 ans 1 rem 3,2 a...

px,em和rem的區別

三者都是相對長度單位 一 px 畫素 畫素是相對於螢幕顯示器解析度而言的。畫素特點 字型大小被定死,不會因為縮放改變二 em em是相對於當前物件的文字尺寸,如果沒有設定,則相對於瀏覽器的預設字型尺寸 特點 1 em的值不是固定的 2 em的可以繼承父級元素的字型大小 注意 所有瀏覽器的預設字型大小...

em和rem的區別

rem單位 rem root em 是乙個相對單位,類似於em,em是父元素字型大小。不同的是rem的基準是相對於html元素的字型大小而不是相對于父元素字型的大小。這樣可以根據螢幕的尺寸,比較容易的控制頁面的布局效果。例如,根元素 html 設定font size 16px 非根元素設定width...