首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在matlab中比较日期和填充间隔时间

在matlab中比较日期和填充间隔时间
EN

Stack Overflow用户
提问于 2011-03-09 05:23:53
回答 1查看 2.1K关注 0票数 0

我有一个包含时间数据的数据文件。100,000+指出,这个列表相当长。每0.1秒有一次数据,时间戳是这样的:

'2010-10-10 12:34:56‘

'2010-10-10 12:34:56.1‘

'2010-10-10 12:34:56.2‘

'2010-10-10 12:34:53.3‘

等。

不一定每隔0.1秒出现一次。我需要检查是否缺少0.1秒的间隔,然后将缺少的时间插入到日期向量中。比较字符串似乎不必要地复杂。我试着比较从午夜开始的秒数:

代码语言:javascript
代码运行次数:0
运行
复制
date_nums=datevec(time_stamps);
secs_since_midnight=date_nums(:,4)*3600+date_nums(:,5)*60+date_nums(:,6);
comparison_secs=linspace(0,86400,864000);
res=(ismember(comparison_secs,secs_since_midnight)~=1);

然而,由于舍入误差,这种方法不起作用。从午夜开始的秒数和比较它的秒数的线性空间都不完全相等(由于十分之一秒的分辨率?)。这样做的目的是稍后对与时间戳关联的数据进行fft,因此我希望尽可能多的统一数据(与丢失间隔关联的数据将被插值)。我已经考虑过把它分成更小的时间块,一次只检查一个小块,但我不知道这是不是最好的方法。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-03-09 05:34:08

将秒数乘以10,并四舍五入为最接近的整数,然后再与范围进行比较。

要做到这一点,可能有比ismember更有效的方法。(我不知道ismember的实现有多聪明,但如果它是可能工作的最简单的事情,那么您将以这种方式花费O(N^2)时间。)例如,您可以使用实际存在的时间戳(作为0.1秒间隔的整数)作为数组的索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5238507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档