时钟同步 matlab,合并时间表并同步其数据

垂直串联时间表

从 openPricesSmall 加载时间表并将它们垂直串联。这些时间表为 opWeek1 和 opWeek2。它们包含一些股票在 2016 年 1 月的第一周和第二周期间的开盘价。

load openPricesSmall

显示这两个时间表。

opWeek1

opWeek1=5×2 timetable

Time AAPL FB

____________________ ______ ______

08-Jan-2016 09:00:00 98.55 99.88

07-Jan-2016 09:00:00 98.68 100.5

06-Jan-2016 09:00:00 100.56 101.13

05-Jan-2016 09:00:00 105.75 102.89

04-Jan-2016 09:00:00 102.61 101.95

opWeek2

opWeek2=5×2 timetable

Time AAPL FB

____________________ ______ ______

14-Jan-2016 09:00:00 97.96 95.85

13-Jan-2016 09:00:00 100.32 100.58

12-Jan-2016 09:00:00 100.55 99

11-Jan-2016 09:00:00 98.97 97.91

08-Jan-2016 09:00:00 98.55 99.88

串联这些时间表。当时间表具有相同的变量时,您可以垂直串联它们。行时间用于为各行添加标签,未包含在时间表变量中。请注意,时间表的行时间可以不按顺序,并且不必具有固定间隔。例如,op 不包含时值周末的日期。时间表还可以包含重复的时间。op 包含两行 08-Jan-2016 09:00:00 数据。

op = [opWeek2;opWeek1]

op=10×2 timetable

Time AAPL FB

____________________ ______ ______

14-Jan-2016 09:00:00 97.96 95.85

13-Jan-2016 09:00:00 100.32 100.58

12-Jan-2016 09:00:00 100.55 99

11-Jan-2016 09:00:00 98.97 97.91

08-Jan-2016 09:00:00 98.55 99.88

08-Jan-2016 09:00:00 98.55 99.88

07-Jan-2016 09:00:00 98.68 100.5

06-Jan-2016 09:00:00 100.56 101.13

05-Jan-2016 09:00:00 105.75 102.89

04-Jan-2016 09:00:00 102.61 101.95

水平串联时间表

您也可以水平串联时间表。这些时间表必须具有相同的行时间和不同的变量。

显示时间表 opOtherStocks。该时间表与 opWeek1 具有相同的行时间,但变量表示不同的股票。

opOtherStocks

opOtherStocks=5×2 timetable

Time MSFT TWTR

____________________ _____ _____

08-Jan-2016 09:00:00 52.37 20.51

07-Jan-2016 09:00:00 52.7 21

06-Jan-2016 09:00:00 54.32 21.62

05-Jan-2016 09:00:00 54.93 22.79

04-Jan-2016 09:00:00 54.32 22.64

串联 opWeek1 和 opOtherStock。输出时间表包含一组行时间以及两个时间表中的变量。

op = [opWeek1 opOtherStocks]

op=5×4 timetable

Time AAPL FB MSFT TWTR

____________________ ______ ______ _____ _____

08-Jan-2016 09:00:00 98.55 99.88 52.37 20.51

07-Jan-2016 09:00:00 98.68 100.5 52.7 21

06-Jan-2016 09:00:00 100.56 101.13 54.32 21.62

05-Jan-2016 09:00:00 105.75 102.89 54.93 22.79

04-Jan-2016 09:00:00 102.61 101.95 54.32 22.64

同步时间表并指示缺失数据

从两个不同的时间表加载空气质量数据和天气测量值,并将这两个时间表进行同步。测量值的日期范围从 2015 年 11 月 15 日到 2015 年 11 月 19 日。空气质量数据来自建筑物内部的传感器,而天气测量值来自外部传感器。

load indoors

load outdoors

显示每个时间表的前五行。它们包含在不同时间获取的具有不同数量的测量值。

indoors(1:5,:)

ans=5×2 timetable

Time Humidity AirQuality

___________________ ________ __________

2015-11-15 00:00:24 36 80

2015-11-15 01:13:35 36 80

2015-11-15 02:26:47 37 79

2015-11-15 03:39:59 37 82

2015-11-15 04:53:11 36 80

outdoors(1:5,:)

ans=5×3 timetable

Time Humidity TemperatureF PressureHg

___________________ ________ ____________ __________

2015-11-15 00:00:24 49 51.3 29.61

2015-11-15 01:30:24 48.9 51.5 29.61

2015-11-15 03:00:24 48.9 51.5 29.61

2015-11-15 04:30:24 48.8 51.5 29.61

2015-11-15 06:00:24 48.7 51.5 29.6

同步这些时间表。输出时间表 tt 包含两个时间表的所有时间。synchronize 会在 tt 中未放置数据值的位置放置一个缺失数据指示符。如果两个输入时间表包含一个同名变量(如 Humidity),synchronize 将会重命名这两个变量并将二者都添加到输出时间表。

tt = synchronize(indoors,outdoors);

tt(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:24 36 80 49 51.3 29.61

2015-11-15 01:13:35 36 80 NaN NaN NaN

2015-11-15 01:30:24 NaN NaN 48.9 51.5 29.61

2015-11-15 02:26:47 37 79 NaN NaN NaN

2015-11-15 03:00:24 NaN NaN 48.9 51.5 29.61

同步并插入数据值

同步时间表并通过线性插值填充缺失的时间表元素。要根据包含两个时间表中的所有时间的时间向量进行同步,请为输出时间指定 'union'。

ttLinear = synchronize(indoors,outdoors,'union','linear');

ttLinear(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:24 36 80 49 51.3 29.61

2015-11-15 01:13:35 36 80 48.919 51.463 29.61

2015-11-15 01:30:24 36.23 79.77 48.9 51.5 29.61

2015-11-15 02:26:47 37 79 48.9 51.5 29.61

2015-11-15 03:00:24 37 80.378 48.9 51.5 29.61

同步到规则时间

将这些时间表同步到一个按小时计的时间向量。输入时间表具有不规则行时间。输出时间表具有规则行时间,时间步为一个小时。

ttHourly = synchronize(indoors,outdoors,'hourly','linear');

ttHourly(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36 80 49 51.299 29.61

2015-11-15 01:00:00 36 80 48.934 51.432 29.61

2015-11-15 02:00:00 36.634 79.366 48.9 51.5 29.61

2015-11-15 03:00:00 37 80.361 48.9 51.5 29.61

2015-11-15 04:00:00 36.727 81.453 48.834 51.5 29.61

将时间表同步到 30 分钟的时间步。使用 'regular' 输入参数和 'TimeStep' 名称-值对组参数指定一个规则时间步。

ttHalfHour = synchronize(indoors,outdoors,'regular','linear','TimeStep',minutes(30));

ttHalfHour(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36 80 49 51.299 29.61

2015-11-15 00:30:00 36 80 48.967 51.366 29.61

2015-11-15 01:00:00 36 80 48.934 51.432 29.61

2015-11-15 01:30:00 36.224 79.776 48.9 51.499 29.61

2015-11-15 02:00:00 36.634 79.366 48.9 51.5 29.61

您也可以将这些时间表同步到一个时间间隔指定为半小时的时间向量。

tv = [datetime(2015,11,15):minutes(30):datetime(2015,11,18)];

tv.Format = indoors.Time.Format;

ttHalfHour = synchronize(indoors,outdoors,tv,'linear');

ttHalfHour(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36 80 49 51.299 29.61

2015-11-15 00:30:00 36 80 48.967 51.366 29.61

2015-11-15 01:00:00 36 80 48.934 51.432 29.61

2015-11-15 01:30:00 36.224 79.776 48.9 51.499 29.61

2015-11-15 02:00:00 36.634 79.366 48.9 51.5 29.61

同步并聚合数据值

同步这些时间表并计算输出时间表中的所有变量的日均值。

ttDaily = synchronize(indoors,outdoors,'daily','mean');

ttDaily

ttDaily=4×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36.5 80.05 48.931 51.394 29.607

2015-11-16 00:00:00 36.85 80.35 47.924 51.571 29.611

2015-11-17 00:00:00 36.85 79.45 48.45 51.238 29.613

2015-11-18 00:00:00 NaN NaN 49.5 50.8 29.61

将这些时间表同步到以 6 小时为时间间隔,并计算每个间隔的均值。

tt6Hours = synchronize(indoors,outdoors,'regular','mean','TimeStep',hours(6));

tt6Hours(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36.4 80.2 48.9 51.45 29.61

2015-11-15 06:00:00 36.4 79.8 48.9 51.45 29.6

2015-11-15 12:00:00 36.6 80.4 49.025 51.45 29.61

2015-11-15 18:00:00 36.6 79.8 48.9 51.225 29.607

2015-11-16 00:00:00 36.6 80.2 48.5 51.4 29.61

也可以指定一个以六小时为时间间隔的时间向量。

tv = [datetime(2015,11,15):hours(6):datetime(2015,11,18)];

tv.Format = indoors.Time.Format;

tt6Hours = synchronize(indoors,outdoors,tv,'mean');

tt6Hours(1:5,:)

ans=5×5 timetable

Time Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg

___________________ ________________ __________ _________________ ____________ __________

2015-11-15 00:00:00 36.4 80.2 48.9 51.45 29.61

2015-11-15 06:00:00 36.4 79.8 48.9 51.45 29.6

2015-11-15 12:00:00 36.6 80.4 49.025 51.45 29.61

2015-11-15 18:00:00 36.6 79.8 48.9 51.225 29.607

2015-11-16 00:00:00 36.6 80.2 48.5 51.4 29.61

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值