我有一个电子表格,里面有很多这样的日期:17:01:11,356078。我知道datenum没有处理微秒的精度。 datevec也不好用,事实上日期变为3.5608e + 5(毫秒)使用它。我需要微秒精度,因为我必须计算增量时间。
答案 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。这只有在您对日期不感兴趣时才有用,但是这将是一个问题,但是您转换为双重