我有一个包含日期/时间的日期时间行,例如2016年5月15日18:30:00。我试图仅提取小时结束时间为00:00的行,例如2016年5月15日18:00:00,以便仅处理每小时数据。仅选取每第n行不起作用,因为某些时间会跳过数据,例如:
StreamData.datetime:
...
21-Apr-2016 12:00:00
2016年4月21日12:15:00
2016年4月21日12:30:00
2016年4月21日12:45:00
2016年4月21日13:00:00
2016年4月21日14:45:00
2016年4月21日15:00:00
...
这也是为什么我不想聚合每小时数据的平均值,而只想要日期时间以:00:00结尾的行。
谢谢!
答案 0 :(得分:1)
%% Your data
date = ['21-Apr-2016 12:00:00';
'21-Apr-2016 12:15:00';
'21-Apr-2016 12:30:00';
'21-Apr-2016 12:45:00';
'21-Apr-2016 13:00:00';
'21-Apr-2016 14:45:00';
'21-Apr-2016 15:00:00'];
data = (1:7)'; % example (data)
%% convert date to vector extracting minutes and second (via datenum first)
[~,~,~,~,minutes,seconds] = datevec(datenum(date,'dd-mmm-yyyy HH:MM:SS'));
%% Index zero minutes and zero seconds
zero_minutes = minutes == 0;
zero_seconds = seconds == 0;
%% Get at the hour indices (rows)
at_the_hour_rows = zero_minutes & zero_seconds;
%% Example extracting corresponding data
at_the_hour_data = data(at_the_hour_rows);