【发布时间】:2017-05-12 21:00:27
【问题描述】:
我有一个数据集缺少一些时间戳。到目前为止,我已经编写了以下代码,
x = table2dataset(Testing_data);
T1 = x(:,1);
C1 =dataset2cell(T1);
formatIn = 'yyyy-mm-dd HH:MM:SS';
t1= datenum(C1,formatIn);
% Creating 10 minutes of time interval;
avg = 10/60/24;
tnew = [t1(1):avg:t1(end)]';
indx = round((t1-t1(1))/avg) + 1;
ynew = NaN(length(tnew),1);
ynew(indx)=t1;
% replacing missing time with NaN
t = datetime(ynew,'ConvertFrom','datenum');
formatIn = 'yyyy-mm-dd HH:MM:SS';
DateVector = datevec(ynew,formatIn);
dt = datestr(ynew,'yyyy-mm-dd HH:MM:SS');
ds = string(dt);
这里显示的测试数据有三个参数,
Time x y
2009-04-10 02:00:00.000 1 0.1
2009-04-10 02:10:00.000 2 0.2
2009-04-10 02:30:00.000 3 0.3
2009-04-10 02:50:00.000 4 0.4
现在您可以看到,对于 10 分钟的间隔,缺少时间戳(2:20 和 2:40),所以我想添加那个时间戳。然后我希望x 和y 的值是NAN。所以我的输出是这样的,
Time x y
2009-04-10 02:00:00.000 1 0.1
2009-04-10 02:10:00.000 2 0.2
2009-04-10 02:20:00.000 NaN NaN
2009-04-10 02:30:00.000 3 0.3
2009-04-10 02:40:00.000 NaN NaN
2009-04-10 02:50:00.000 4 0.4
正如您从我的代码中看到的那样,我只能添加带有时间戳的NaN,但现在想获取我想要的对应的 x 和 y 值。
请注意,我有超过 3000 个上述格式的数据行,我想对我的所有值执行相同的操作。
【问题讨论】:
标签: arrays matlab timestamp time-series