matlab把日期轉換成數字以後輸出到csv文件,數字會四捨五入?
01-07
比如說"2009/10/9"用datenum變成數字是734055,matlab工作區里也顯示是734055,為什麼用csvwrite輸出到csv文件里就變成734060了?
題主,你在Command Window輸入:
&>&> help csvwrite
你會發現在notes里有一條:
csvwrite writes a maximum of five significant digits. For greater precision, call DLMWRITE with a precision argument.
csvwrite最多支持五個數位的精度,你要寫入734055,顯然會自動從低位開始截斷(四捨五入),為了獲取更高的精度寫入,推薦用函數dlmwrite.
簡單的舉個例子:
&>&> number = datenum("2009/10/9");
&>&> dlmwrite("C:/Users/013/dateNumber.csv", number)
但是你會發現「然並卵」,結果顯示仍舊是734060.......
那該怎麼辦呢?老辦法,還是萬能的help.&>&> help dlmwrite
你會發現需要通過相關屬性設置來控制寫入的數值精度,採用C形式的格式化字元串『%10.5f』之類。
&>&> dlmwrite("C:/Users/013/dateNumber.csv", number, "precision", "%6d")
「沒事兒多help才是解決問題的捷徑。」
謝邀,來遲,我一般是用xlsread,好像沒怎麼碰到這種問題。看到CHNL4回答得有圖有真相,我就不來湊合了 為CHNL4點贊
推薦閱讀:
※Matlab在金融領域有什麼具體應用嗎?
※如何評價新出的MATLAB R2017b?
※在醫學圖像領域,python可以取代matlab嗎?
TAG:MATLAB |