Matlab:选择与特定时间相关的行

时间:2013-11-20 03:53:33

标签: matlab date

我有来自传感器的数据,数据记录了五天不停。如何选择与特定时间相关的特定行,例如11-09-2013 11:20:00 - 11:21:49 PM?那么,如何将获得的数据分成2.56秒的相等段?

我的数据如下:

0.135478690266609
0.0537606552243232
-0.0262537784874439
0.157014295458793
0.149360358715057
0.104898564517498
0.0393946692347526
...

我可以使用datestr(data(1), 'dd-mm-yyyy HH:MM:SS AM')

来阅读时间

1 个答案:

答案 0 :(得分:0)

如果我理解正确,data是以天为单位的时间戳矢量。

要查找11-09-2013 11:20:00 PM之后的第一行,您可以执行以下操作:

target = datenum('11-09-2013 11:20:00 PM', 'dd-mm-yyyy HH:MM:SS AM') / 86400;
row = find(data >= target, 1, 'first');

查找11-09-2013 11:20:00 PM11-09-2013 11:21:49 PM之间的所有行:

start = datenum('11-09-2013 11:20:00 PM', 'dd-mm-yyyy HH:MM:SS AM') / 86400;
stop = datenum('11-09-2013 11:21:49 PM', 'dd-mm-yyyy HH:MM:SS AM') / 86400;
rows = find(data >= start & data <= stop);

要在日期start之后获得2.56秒的片段,请将stop设置为start + 2.56 / 86400并使用与上述相同的技巧。