使用datatime一个表的数据查找(写)最近的datetime数据在另一个表和相应的值

13个视图(30天)
所以我有两个datetime数据写在表的形式,第一列是日期(datetime格式)和第2列的值。表1的datatimes(从1到160)不完全匹配与表2的日期时间(从1到1065)。我想做的就是把每一个datetime从表1和表2中找到最近的datetime也相应的价值和写他们到另一个表或一个txt文件。例如,第一个datetime的表1与表2的行9会,我想写datetime,一个新表中相应的X的值或txt文件。
表1
表2
我看见两个数据集的结果相似问题的答案都写在矩阵形式和变量数组的两倍。使用相同的方法,但是我在问题表和datetime数组。任何帮助将非常感激。我已经试过(失败)使用datenum datetime转换为双数组,提前和表数组等。谢谢。

答案(1)

剪秋罗属植物龙
剪秋罗属植物龙 2019年11月15日
编辑:剪秋罗属植物龙 2019年11月15日
使用 时间表 而不是为时间戳数据表。你可以用 table2timetable 转换表的时间表;或使用 readtimetable (引入R2019b)直接导入时间表。
时间表, 调整时间 让你实现你的目标在一行:
% tt3同时tt1和吸引从tt2最近的数据
tt3 =调整时间(tt2 tt1.Time,“最近的”);
例如,模仿你的数据(但使用时间表):
%的tt1对应于你的“表1”
> >大小(tt1)
ans =
160年1
> >头(tt1, 10)
ans =
10×1的时间表
时间X
__________________________
23日- 1月- 2018 15:08:39 1.6151
23日- 1月- 2018 15:11:50 1.474
23日- 1月- 2018 15:14:55 1.6389
23日- 1月- 2018 15:17:50 1.5455
23日- 1月- 2018 15:20:55 1.592
23日- 1月- 2018 15:23:49 1.7928
23日- 1月- 2018 15:26:40 1.5827
23日- 1月- 2018 15:29:56 1.6156
23日- 1月- 2018 15:33:03 1.6353
23日- 1月- 2018 15:36:21 1.471
%的tt2对应于你的“表2”
> >大小(tt2)
ans =
1065年1
> >头(tt2, 10)
ans =
10×1的时间表
时间X
__________________________
23日- 1月- 2018 15:04:30 1.6899
23日- 1月- 2018 15:05:00 1.7574
23日- 1月- 2018 15:05:30 1.47
23日- 1月- 2018 15:06:00 1.646
23日- 1月- 2018 15:06:30 1.7471
23日- 1月- 2018 15:07:00 1.7987
23日- 1月- 2018 15:07:30 1.4625
23日- 1月- 2018 15:08:00 1.7743
23日- 1月- 2018 15:08:30 1.7089
23日- 1月- 2018 15:09:00 1.7201
上面的调用 调整时间 给你这个结果:
%注意tt3 tt1的同时,从行9 tt2 X的值,如你的例子所示。
> > tt3 =调整时间(tt2 tt1.Time,“最近的”);
> > isequal (tt1。时间,tt3.Time)
ans =
逻辑
1
> >大小(tt3)
ans =
160年1
> >头(tt3、10)
ans =
10×1的时间表
时间X
__________________________
23日- 1月- 2018 15:08:39 1.7089
23日- 1月- 2018 15:11:50 1.424
23日- 1月- 2018 15:14:55 1.5667
23日- 1月- 2018 15:17:50 1.6594
23日- 1月- 2018 15:20:55 1.7137
23日- 1月- 2018 15:23:49 1.704
23日- 1月- 2018 15:26:40 1.61
23日- 1月- 2018 15:29:56 1.7736
23日- 1月- 2018 15:33:03 1.767
23日- 1月- 2018 15:36:21 1.4465
1评论
Subhasish管理者
Subhasish管理者 2019年11月16日
你好,剪秋罗属植物,
我检查它(convertng表后的时间表)及其后给我错误(我使用R2018b)。
.......................................................................................................................................................
tt3 =调整时间(tt2 tt1.Time,“最近的”);
错误使用时间表/调整时间(第140行)
输入时间表必须包含排序(增加或减少)行同步使用“最近”的时候。
.......................................................................................................................................................

登录置评。

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!