我有一个1分钟的间隔时间序列,我想从中计算3列数据。 时间格式为dd / mm / yy hh:mm:ss 我想指定一个20分钟的时间值,我想为所有相应的日期(19:00; 19:20; 19:40; 20:00)提取相应的样本。
我已经使用
创建了一个时间序列
ts =时间序列(数据,时间)
samples = getdatasamples(ts,i)
但我无法定义可以进行此类提取的逻辑向量
答案 0 :(得分:0)
请尝试以下代码:
pat_19='19:[0 2 4]0:00';
pat_20='20:00:00';
out_19=~(cellfun('isempty',regexpi(a(:,1),pat_19,'match')));
out_20=~(cellfun('isempty',regexpi(a(:,1),pat_20,'match')));
out=a(find(out_19+out_20),:);
在此,我假设秒的值始终为'0'
请参阅以下示例:
"a"
是一个以第一列为日期和时间序列数据值的单元格数组。
a =
'15/08/81 19:00:00' 0.01
'15/08/81 19:10:00' 0.02
'15/08/81 19:20:00' 0.03
'15/08/81 19:30:00' 0.04
'15/08/81 19:40:00' 0.06
'15/08/81 19:50:00' 0.07
'15/08/81 20:00:00' 0.01
'15/08/81 20:10:00' 0.02
'15/08/81 20:20:00' 0.03
'15/08/81 20:30:00' 0.03
执行上述代码后,输出存储在单元格数组"out"
out =
'15/08/81 19:00:00' 0.01
'15/08/81 19:20:00' 0.03
'15/08/81 19:40:00' 0.06
'15/08/81 20:00:00' 0.01