關於matlab的mod問題

2021-10-10 09:57:29 字數 1044 閱讀 4052

本人在做matlab**轉c語言**時,排查bug,終於發現,問題出在mod取餘函式:

float

floatmodint

(float ft,

int it)

//浮點數對整數取餘

以1.369餘1為例,確實,matlab的mod函式的計算結果與floatmodint函式的返回值一致,均為0.369.

matlab計算結果

c計算結果

然而,對於負數的取餘就有點意思了。

以-1.369為例

matlab對負數取餘

該c**對負數取餘

我人傻了,負數取余是這麼取餘的嘛???看起來越簡單的函式越要注意它的實現,當初寫c**的時候沒把它當個人,現在它給我了一拳+_+[浪費我兩天時間排查**~_~』』』』],記錄一下這件事,權當是教訓了。

附上:c語言實現float對int的取餘的正確**,其實我要當時看一眼matlab對mod原始碼裡的注釋也不至於!!!

float

floatmodint

(float ft,

int it)

//#include

matlab中的注釋

*一種植物!!!!

matlab的rem 和mod 函式

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 正數與正數,負數與...

關於 MOD 和 選擇

我常常會用到 dim總數 asint16 10 dim記錄數 asint16 6 得到要分幾頁 if總數 記錄數 總數 記錄數 then response.write 總數 記錄數 else response.write 總數 記錄數 1 endif 一位同事的做法,看起來舒服些 ifinttota...

關於matlab路徑的問題

前言 由於matlab 只執行自己工作路徑下的檔案,所以相對路徑必須的相對 考慮的是當前的工作目錄,所以使用相對路徑的時候 必須要先確定一下當前的工作目錄是在 然後再設定相應的相對路徑 絕對路徑的卻現在在於只能對乙個電腦有用 fname c sd 實驗備份 magec me magic all da...