我有兩個 Matlab 表,想合并,但時間間隔不同。提前致謝
- 時間間隔為 3 小時的表 TEST_1 和關鍵資料 DINDEX。
DUT DINDEX 2018/8/4 0.7 2018/8/4 3:00:00 1.3 2018/8/4 9:00:00 0.7 2017/8/4 9:00:00 0.7 2018/10/5 0 2018/10/5 9:00:00 0.3 2018/10/5 18:00:00 1 2018/10/5 21:00:00 0.7 2018/10/10 0.7
例如,
第一行顯示時間范圍在 2018/8/4 00:00:00 和 2018/8/4 3:00:00 之間,時間間隔為 3 小時。
第二行顯示時間范圍在 2018/8/4 3:00:00 和 2018/8/4 6:00:00 之間,時間間隔為 3 小時,以此類推。
- 表 TABLE_2 的 DATE 沒有正則。
UT KP 2018/8/4 1:02:05.421000 2018/8/4 4:02:06.921000 2018/8/4 9:02:08.421000 2017/8/4 9:02:09.921000 2018/10/5 1:02:11.421000 2018/10/5 10:02:14.421000 2018/10/5 19:02:15.921000 2018/10/5 21:02:17.421000 2018/10/10 0:02:18.921000
- 現在,我想使用表 TEST_1 中的關鍵資料 DINDEX 按時間合并到表 TEST_2 的欄位 KP 中,我期望的是:
UT KP 2018/8/4 1:02:05.421000 0.7 2018/8/4 4:02:06.921000 1.3 2018/8/4 9:02:08.421000 0.7 2017/8/4 9:02:09.921000 0.7 2018/10/5 1:02:11.421000 0 2018/10/5 10:02:14.421000 0.3 2018/10/5 19:02:15.921000 1 2018/10/5 21:02:17.421000 0.7 2018/10/10 0:02:18.921000 0.7
第一個UT(2018/8/4 1:02:05.421000)在2018/8/4 00:00:00和2018/8/4 3:00:00之間,所以第一個UT的KP為0.7,對應到第一個 DINDEX。
uj5u.com熱心網友回復:
您可以使用操作來執行此timetable操作retime。這允許您以多種方式“插入”時間序列資料。這是一個虛構的示例,我認為與您所描述的內容有些相似:
先做一些有規律的資料,放入時間表
>> regularData = timetable(datetime(2018,8,4) hours(0:6:48)', randi(10, 9, 1))
regularData =
9x1 timetable
Time Var1
____________________ ____
04-Aug-2018 00:00:00 9
04-Aug-2018 06:00:00 6
04-Aug-2018 12:00:00 6
04-Aug-2018 18:00:00 10
05-Aug-2018 00:00:00 3
05-Aug-2018 06:00:00 8
05-Aug-2018 12:00:00 8
05-Aug-2018 18:00:00 4
06-Aug-2018 00:00:00 6
這些是我們希望插入的時代
>> wantTimes = datetime(2018,8,4) hours(sort(48 * rand(5,1)))
wantTimes =
5x1 datetime array
04-Aug-2018 02:35:22
04-Aug-2018 03:38:27
05-Aug-2018 01:28:41
05-Aug-2018 13:24:00
05-Aug-2018 20:49:57
使用“最近”值執行插值。
>> retime(regularData, wantTimes, 'nearest')
ans =
5x1 timetable
Time Var1
____________________ ____
04-Aug-2018 02:35:22 9
04-Aug-2018 03:38:27 6
05-Aug-2018 01:28:41 3
05-Aug-2018 13:24:00 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474677.html
下一篇:熊貓對面帶功能
