2014-10-17 77 views
3

我有一個電子表格,裏面有很多這樣的日期:17:01:11,356078。我知道datenum沒有處理微秒的精度。此外,datevec對此並不好,事實上,使用它的日期變成了3.5608e + 5(毫秒)。我需要微秒精度,因爲我必須計算增量時間。在MATLAB中有微秒的日期

回答

1

matlab中的現有日期格式不允許小於微秒的任何事情。因此解決方案是避免這些格式。

一個相對簡單的方法來做到這一點是拆分數字。例如,將1個向量舍入到第二個向量,另一個向量與第二個秒的部分向下舍入。這樣,您可以根據需要獲得非常高的精度。

然後計算差異將通過添加其餘的差異的秒差來完成。 (使用常數來縮放差異)

1

在我看來,最乾淨的解決方案是將函數轉換成毫秒的手動輸入字符串並創建時間戳記向量。

不幸的是,從Matlab的日期/時間結構看不到低於幾毫秒。

4

如果您有機會使用最新版本的R2014b,它包括日期和時間處理的檢修,包括處理納秒精度的新對象datetime

在此之前,如果您需要超過毫秒的精度,您可能需要實現自己的存儲和操作時間的方式,而不是依靠內置的datenumdatestr

0

datenum的問題在於,您僅限於double的精度。如果通過輸入日期字符串來消除日間偏移量0-jan-0000-hrs:mins:secs datenum能夠很好地解決飛秒。這隻有在你對日期不感興趣時​​纔有用,但是這又會成爲一個問題,但是你可以將其轉換爲雙精度型號