MATLAB中的日期,以微秒为单位

时间:2014-10-17 08:42:56

标签: matlab date

我有一个电子表格,里面有很多这样的日期:17:01:11,356078。我知道datenum没有处理微秒的精度。 datevec也不好用,事实上日期变为3.5608e + 5(毫秒)使用它。我需要微秒精度,因为我必须计算增量时间。

4 个答案:

答案 0 :(得分:4)

如果您有机会使用最新版本的R2014b,它包括日期和时间处理的大修,包括处理纳秒精度的新datetime对象。

在此之前,如果你需要超过毫秒的精度,你就会陷入困境,你可能需要实现自己的方式来存储和操纵你的时间,而不是依赖于内置的{{1 }和datenum等。

答案 1 :(得分:1)

matlab中的现有日期格式不允许小于微秒的任何内容。因此,解决方案是避免这些格式。

执行此操作的一种相对简单的方法是拆分数字。例如,有1个向量,其中日期向下舍入到第二个,而另一个向量具有该秒的分数。这样,如果需要,您可以获得非常高的精度。

然后通过将差值(以秒为单位)与剩余部分的差值相加来计算差值。 (使用常数来缩小差异)

答案 2 :(得分:1)

我认为最干净的解决方案是使用一个函数将输入字符串转换为微秒,手动创建时间戳向量。

不幸的是,Matlab的日期/时间结构看不到低于毫秒。

答案 3 :(得分:0)

datenum的问题在于你被限制在double的精度。如果通过提供日期字符串0-jan-0000-hrs:mins:secs来消除日偏移量,则datenum非常能够解决femptoseconds。这只有在您对日期不感兴趣时​​才有用,但是这将是一个问题,但是您转换为双重