主要内容

同步

将时间表与公共时间矢量同步,并从输入时间表中重新采样或汇总数据

描述

同步函数从所有输入时间表中收集变量,将它们同步到一个公共时间向量,并将结果作为单个时间表返回。其效果类似于水平连接,尽管输入时间表可以具有不同的行时间。当同步函数将时间表变量同步到不同的时间,它还使用您指定的方法重新采样或聚合变量中的数据。

例子

TT =同步(TT1, TT2创建一个时间表,TT,其中包含来自两个输入时间表的所有变量TT1TT2,同步到一个行乘以的向量,它是行乘以的并集TT1TT2.的行乘TT是按顺序排列的,没有重复的次数。

实际上,同步的变量水平连接TT1TT2,即使它们的行时间不同。因此,同步插入缺失的数据指示灯TT无论它在哪里:

  • 一行时间只从TT1的变量中没有对应的数据TT2

  • 一行时间只从TT2的变量中没有对应的数据TT1

如果TT1TT2有相同名称的变量,那么同步重命名它们并将这两个变量复制到TT

在…中插入或填充值TT对不同的变量使用不同的方法,指定VariableContinuity每个输入时间表的属性。有关更多信息,请参见使用不同的方法重新计时和同步时间表变量

例子

TT =同步(TT1, TT2newTimeBasis方法创建TT的同步变量TT1TT2到指定的新时间向量newTimeBasis同步中的变量重新采样或汇总数据TT1TT2指定的操作方法.输入参数,newTimeBasis,指定如何同步的行乘TT从行乘以TT1TT2

例如,如果newTimeBasis“联盟”方法“线性”,然后TT包含从的行乘TT1TT2,同步使用线性插值将数据从输入时间表重新采样到输出行时间。

例子

TT =同步(TT1, TT2newTimeStep方法创建TT的同步变量TT1TT2到一个新的时间向量,该时间向量以指定的时间单位有规则间隔newTimeStep

例如,如果newTimeStep“每天”方法“的意思是”,然后TT包含间隔一天的行时间,以及TT包含来自的每个变量的日均值TT1TT2

例子

TT =同步(TT1, TT2“常规”,方法“步伐”,dt使用时间步长dt计算规则间隔的行时间。dt是标量持续时间或日历持续时间。的行乘TT张成行乘以的范围TT1TT2

TT =同步(TT1, TT2“常规”,方法“SampleRate”,Fs使用采样率Fs计算规则间隔的行时间。Fs是一个正数标量,指定每秒的采样数(Hz)。

例子

TT =同步(TT1, TT2新时期方法创建TT的同步变量TT1TT2新时期指定的唯一排序时间的日期时间或持续时间向量。时代在新时期变成的行乘以TT

例子

TT =同步(TT1, TT2newTimeBasis创建TT的同步变量TT1TT2到一个新的时间向量。同步在需要的地方插入缺失的数据指示器TT

例子

TT =同步(TT1, TT2newTimeStep创建TT的同步变量TT1TT2到一个新的时间向量,该时间向量以指定的时间单位有规则间隔newTimeStep.的同步函数在需要的地方插入缺失的数据指示器TT

TT =同步(TT1, TT2“常规”,“步伐”,dt使用时间步长dt计算规则间隔的行时间。dt是标量持续时间或日历持续时间。的行乘TT张成行乘以的范围TT1TT2

TT =同步(TT1, TT2,“常规”,“SampleRate”,Fs使用采样率Fs计算规则间隔的行时间。Fs是一个正数标量,指定每秒的采样数(Hz)。

TT =同步(TT1, TT2新时期创建TT的同步变量TT1TT2对于时间向量,新时期.的同步函数在需要的地方插入缺失的数据指示器TT

TT =同步(TT1, TT2___名称,值与一个或多个指定的其他选项同步时间表名称,值对。您可以将此语法与前面任何语法的输入参数一起使用。

TT = synchronize(TT1,…,TTN,___创建时间表,TT,通过同步N时间表TT1,…,TTN.您可以将此语法与前面任何语法的输入参数一起使用。

例子

全部折叠

从一个文件加载两个示例时间表。然后将它们的数据同步到新行时间的向量。

负载smallTT

显示时间表。TT1有无序的行乘。TT1TT2有不同的变量。

TT1
TT1 =3×1的时间表一次临时  ____________________ ____ 18 - 12月- 2015 42.3 12:00:00 18 - 12月- 2015 08:00:00 37.3 18 - 12月- 2015 10:00:00 39.1
TT2
TT2 =3×1的时间表时间压力  ____________________ ________ 18 - 12月- 2015 30.1 09:00:00 18 - 12月- 2015 11:00:00 30.03 18 - 12月- 2015 13:00:00 29.9

同步TT1TT2.输出时间表,TT,包含两个时间表中的所有行时间,按顺序排列。在TT临时包含对于行乘以TT2,压力包含对于行乘以TT1

TT = synchronize(TT1,TT2)
TT =6×2时间表时间温度压力____________________ ____________ 18-Dec-2015 08:00:00 37.3 NaN 18-Dec-2015 09:00:00 NaN 30.1 18-Dec-2015 10:00:00 39.1 NaN 18-Dec-2015 11:00:00 NaN 30.03 18-Dec-2015 12:00:00 42.3 NaN 18-Dec-2015 13:00:00 NaN 29.9

加载两个包含天气测量值的样例时间表。将它们的数据同步到来自时间表的行时间的并集。

负载firstTT

显示时间表。

TT1
TT1 =3×1的时间表一次临时  ____________________ ____ 06 - jun - 2016 15:00:00 79.7 06 - 2016年6月- 06 - jun - 2016 17:00:00 76.3 16:00:00 74.9
TT2
TT2 =4×1的时间表时间的湿度  ____________________ ________ 06 - jun - 2016 14:35:48 49.7 06 - 2016年6月- 52.2 15:35:48 06 - jun - 2016 16:35:48 56.7 06 - 2016年6月——17:35:48 60

同步时间表。若要选择行时间的并集,请指定“联盟”.要重新取样TT1。临时TT2。湿度使用线性插值,指定“线性”

TT = synchronize(TT1,TT2,“联盟”“线性”
TT =7×2时间表时间温度湿度____________________ ______________ 06- june -2016 14:35:48 81.071 49.7 06- june -2016 15:00:00 79.7 50.708 06- june -2016 15:35:48 77.671 52.2 06- june -2016 16:00:00 76.3 54.014 06- june -2016 16:35:48 75.464 56.7 06- june -2016 17:00:00 74.9 58.03 06- june -2016 17:35:48 74.064 60

将两个时间表同步到指定每个时间间隔为一天的新行时间。将输入时间表中的数据汇总到每日时间箱中。

加载包含两组不同环境测量的样本时间表,在室内在户外.空气质量数据来自建筑物内部的传感器,而天气测量数据来自建筑物外部的传感器。时间表包括2015年11月15日至11月19日的测量。

负载在室内负载在户外

显示每个时间表的前三行。它们不包含相同的行时间或变量。

在室内(1:3,:)
ans =3×2时间表时间湿度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
户外(1:3,:)
ans =3×3的时间表时间湿度TemperatureF PressureHg  ___________________ ________ ____________ __________ 2015-11-15 51.3 - 29.61 00:00:24 49 2015-11-15 01:30:24 03:00:24 48.9 51.5 29.61 48.9 51.5 29.61 2015-11-15

将时间表中的数据聚合到每日时间桶中同步函数。指定“每天”将数据汇总到每个时间间隔一天的时间桶中。指定“的意思是”得到每个变量在每个时间仓中的平均值。

同步(室内,室外,“每天”“的意思是”);: TT (1:3)
ans =3×5时间表时间Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg  ___________________ ________________ __________ _________________ ____________ __________ 2015-11-15就是36.5 80.05 48.931 51.394 29.607 2015-11-15就是36.85 80.35 47.924 36.85 79.45 48.45 51.238 29.613 51.571 - 29.611 2015-11-17就是

将两个具有天气测量值的小时间表同步到一组常规行时间,这些行时间跨越输入时间表中的行时间。指定时间步长作为输出时间表中连续行时间之间的间隔。使用线性插值对时间向量中与输入时间表中的行时间不匹配的时间重新采样数据。

首先,加载两个时间表。

负载在室内负载在户外

显示每个时间表的前三行。它们不包含相同的行时间或变量。

在室内(1:3,:)
ans =3×2时间表时间湿度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
户外(1:3,:)
ans =3×3的时间表时间湿度TemperatureF PressureHg  ___________________ ________ ____________ __________ 2015-11-15 51.3 - 29.61 00:00:24 49 2015-11-15 01:30:24 03:00:24 48.9 51.5 29.61 48.9 51.5 29.61 2015-11-15

将时间表中的数据聚合到30分钟的时间桶中同步函数。参数指定常规时间步长“普通”输入参数和“步伐”名称-值对参数。您可以使用这些参数来创建一个常规的时间表,但其时间步长不是预定义的步长,例如“每小时”

同步(室内,室外,“普通”“线性”“步伐”分钟(30));: TT (1:3)
ans =3×5时间表时间Humidity_indoors AirQuality Humidity_outdoors TemperatureF PressureHg  ___________________ ________________ __________ _________________ ____________ __________ 2015-11-15就是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

同步两个小时间表与天气测量到任意时间向量。使用线性插值对时间向量中与输入时间表中的行时间不匹配的时间重新采样数据。

加载两个小时间表,在半小时标记处进行测量的行时间。但是,在每个时间表中,对于未在半小时标记处收集的数据都有一个行时间。这两个时间表都是不规则的,这意味着连续的行时间之间的时间步长是不同的。

负载halfHoursTT

显示时间表。TT1TT2有三行和不同的变量。

TT1
TT1 =3×1的时间表一次临时  ____________________ ____ 18 - 12月- 2015 47.6 08:30:00 18 - 12月- 2015 09:30:00 49.2 18 - 12月- 2015 10:47:23 51.4
TT2
TT2 =3×1的时间表时间压力  ____________________ ________ 18 - 12月- 2015 29.7 07:00:00 18 - 12月- 2015 09:30:00 30.03 18 - 12月- 2015 10:30:00 29.9

指定一个时间向量,其中包括每个时间表中的一些行时间。

newTimes = datetime(“2015-12-18 08:30:00”) +小时(0:1:2)
新时期=1 x3 datetime18-Dec-2015 08:30:00 18-Dec-2015 09:30:00

同步TT1TT2新时期.的新时期向量的行乘以不是TT1TT2.插入时间的数据值新时期它们不匹配行乘以inTT1TT2,指定“线性”

TT = synchronize(TT1,TT2,newTimes,“线性”
TT =3×2时间表时间温度压力  ____________________ ______ ________ 18 - 12月18 - 2015 08:30:00 47.6 29.898 49.2 - 30.03 - 12月- 2015 09:30:00 18 - 12月- 2015 10:30:00 50.906 - 29.9

加载两个示例时间表,并将它们的数据同步到它们共有的行时间向量中。

负载intersectTT

显示时间表。TT1TT2有三行和不同的变量。

TT1
TT1 =3×1的时间表一次临时  ____________________ ____ 18 - 12月- 2015 37.3 08:00:00 18 - 12月- 2015 10:00:00 39.1 18 - 12月- 2015 12:00:00 42.3
TT2
TT2 =3×1的时间表时间压力  ____________________ ________ 18 - 12月- 2015 30.1 06:00:00 18 - 12月- 2015 08:00:00 30.03 18 - 12月- 2015 10:00:00 29.9

同步TT1TT2,指定“十字路口”作为输出时间表的行时间的基础。TT只有两行是因为TT1TT2只有两行时间相同。

TT = synchronize(TT1,TT2,“十字路口”
TT =2×2的时间表时间温度压力  ____________________ ____ ________ 12月18 - 37.3 - 30.03 - 2015 08:00:00 18 - 12月- 2015 10:00:00 39.1 - 29.9

不需要插入或填充不匹配的行,因为TT1TT2它们都有相同行次的数据。

同步两个小时间表与天气测量每小时的时间矢量。

加载两个小时间表。在每个时间表中,对于未在该小时收集的数据,都有一个行时间。这两个时间表都是不规则的,这意味着连续的行时间之间的时间步长是不同的。

负载irregularTT

显示时间表。TT1TT2有三行和不同的变量。

TT1
TT1 =3×1的时间表一次临时  ____________________ ____ 18 - 12月- 2015 37.3 08:00:00 18 - 12月- 2015 09:11:17 39.1 18 - 12月- 2015 10:00:00 42.3
TT2
TT2 =3×1的时间表时间压力  ____________________ ________ 18 - 12月- 2015 29.8 08:00:00 18 - 12月- 2015 09:27:23 29.7 18 - 12月- 2015 10:00:00 30.3

同步TT1TT2,指定“每小时”作为输出时间表的行时间的时间步长。TT有来自TT1TT2他们有排班时间,是整点计算的。TT有没有缺失的数据指标,它有一个行时间TT1TT2没有。

TT = synchronize(TT1,TT2,“每小时”
TT =3×2时间表时间温度压力  ____________________ ____ ________ 12月18 - 37.3 - 29.8 - 2015 08:00:00 18 - 12月- 2015年09:00:00南南18 - 12月- 2015 10:00:00 42.3 - 30.3

同步两个时间表。应用的意思是方法对一些时间表变量和总和方法给别人。

加载两个小时间表,其中包含波士顿和纳蒂克的天气测量值。每个时间表都包含温度和降雨量读数。

负载citiesTT波士顿
波士顿=6×2时间表时间温度雨___________________ ________ 2016-06-09 06:03:00 59.5 0.05 2016-06-09 12:00:23 63 0.08 2016-06-09 18:02:57 61.7 0.13 2016-06-10 06:01:47 55.4 0.15 2016-06-10 12:06:00 62.3 0.87 2016-06-10 18:02:57 58.8 0.33
纳蒂克
纳蒂克=5×2时间表时间温度雨___________________ __________ 2016-06-09 12:00:23 61.2 0.076 2016-06-09 17:59:00 60.3 0.11 2016-06-10 09:03:01 56.1 0.19 2016-06-10 12:07:03 62.17 0.72 2016-06-10 17:59:57 58.3 0.1

将测量值与每日时间同步,以产生平均温度和降雨量测量值的总和。同步将指定的方法应用于所有时间表变量。要对不同的时间表变量应用不同的方法,请索引到时间表中以选择不同的变量,并调用同步对于您使用的每种方法。

波士顿(:;“临时”);NTK = Natick(:,“临时”);TT1 =同步(BOS,NTK,“每天”“的意思是”
TT1 =2×2的时间表时间Temp_BOS Temp_NTK  ___________________ ________ ________ 2016-06-09就是61.4 - 60.75 2016-06-09就是58.833 - 58.857
波士顿(:;“雨”);NTK = Natick(:,“雨”);TT2 =同步(BOS,NTK,“每天”“和”
TT2 =2×2的时间表时间Rain_BOS Rain_NTK  ___________________ ________ ________ 2016-06-09就是0.26 - 0.186 2016-06-09就是1.35 - 1.01

要将所有结果合并到一个时间表中,请串联TT1TT2

Tt = [tt1 tt2]
TT =2×4时间表时间Temp_BOS Temp_NTK Rain_BOS Rain_NTK  ___________________ ________ ________ ________ ________ 2016-06-09就是61.4 58.857 1.35 1.01 58.833 60.75 0.26 0.186 2016-06-10就是

输入参数

全部折叠

输入时间表。

计算输出时间表的行时间的基础,指定为字符向量。newTimeBasis可以是列出的任何方法。

方法

描述

“联盟”(默认)

行并集乘以

“十字路口”

行乘以的交点

“commonrange”

行时间的并集,但是在时间范围的交集上

“第一”

仅从第一个输入时间表的行时间

“最后一次”

仅从上一次输入时间表中获取行时间

输出时间表中间隔时间的时间步长,指定为字符向量。newTimeStep可以是列出的任何时间步骤。

时间步长

描述

“年”

一年

“季度”

一个季度

“月”

一个月

“周”

一个星期

“每天”

有一天,

“每小时”

一个小时

“详细”

一分钟

“第二”

一秒钟

的第一行时间TT位于时间单元的开头,该时间单元包含输入时间表中最早的行时间。行乘以in的范围TT涵盖的行时间范围TT1TT2.然而,TT可能不包括任何实际的行乘TT1TT2,因为它们可以有不在任何时间单位开始的行时间。

采样率,指定为正数标量。Fs每秒采样数(Hz)。

时间步长,指定为日期时间标量或持续时间标量。

数据类型:datetime|持续时间|calendarDuration

新的时间向量,指定为日期时间向量或持续时间向量。新的时间向量必须是列向量。新时期可以具有与任何输入时间表不同的行数。

方法,用于调整指定为字符向量、字符串标量或函数句柄的时间表数据。您可以使用列出的任何方法来调整输入时间表中的数据。

填补方法

当输出时间表的行时间与相应输入的行时间相匹配时,从每个输入时间表的行中复制数据。然后,用缺失的数据指示器填充输出时间表的其余元素。

若要用常量而不是缺失的数据指示符填充其余元素,请使用“不变”名称-值对参数。

方法

描述

“fillwithmissing”(默认)

用缺失的数据指标填补输出中的空白(例如,对于数值变量)。

“fillwithconstant”

的值填充输出中的空白“不变”名称-值对参数。默认值为0

最近邻法

根据指定的方法,将数据从输入时间表的行复制到行时间最接近匹配的输出时间表行。输入时间表必须按行时间排序。

方法

描述

“以前”

从输入时间表中最近的前邻居复制数据,从行时间向量的末尾开始。如果有重复的行,那么“以前”最后一个副本。

“下一个”

从输入时间表中最近的近邻复制数据,从行时间向量的开头开始。如果有重复的行,那么“下一个”第一个副本。

“最近的”

从输入时间表中最近的邻居复制数据。

插值方法

从输入时间表相邻行的数据值中插入输出时间表中的数据值。输入时间表必须具有已排序且唯一的行时间。要控制如何外推输入时间表的第一行和最后一行时间以外的数据,请使用“EndValues”名称-值对参数。

方法

描述

“线性”

使用线性插值。

样条的

使用分段三次样条插值。

“pchip”

使用保持形状的分段三次插值。

“makima”

使用改进的Akima三次埃尔米特插值。

聚合方法

按输出时间表的行时间指定的时间桶聚合输入时间表的行数据。的每一行时间TT是时间库的左边缘,下一个连续的行时间为右边缘。默认情况下,左边缘包含在时间箱中。若要控制时间容器中是否包含左侧或右侧容器边缘,请使用“IncludedEdge”名称-值对参数。

如果你指定了时间向量,新时期,然后新时期必须按升序排序。如果将输出时间表的时间基础指定为“第一”“最后一次”,则第一个或最后一个时间表的行时间必须按升序排序。

所有列出的方法都省略了年代,NaTS等缺失数据指标,除函数.要包含缺失的数据指示器,请指定函数作为函数句柄,用于在聚合数据时包含它们的函数。

方法

描述

“和”

将每个时间bin中的值求和。

“刺激”

计算每个时间仓中值的乘积。

“的意思是”

计算每个时间仓中值的平均值。

“中值”

计算每个时间bin中值的中位数。

“模式”

计算每个时间仓中值的模式。

“最小值”

计算每个时间仓中值的最小值。

“马克斯”

计算每个时间仓中值的最大值。

“数”

计算每个时间bin中的值的数量。

“firstvalue”

使用每个时间bin中的第一个值。

“lastvalue”

使用每个时间bin中的最后一个值。

@func

使用函数句柄指定的函数(例如,@std计算每个时间仓中值的标准差。函数必须返回为标量或行向量的输出参数,并且必须接受空输入。

默认的方法

默认的方法相当于离开方法未指明的。

方法

描述

“默认”(默认)

方法指定的每个变量方法可以用缺失的数据指示符填充空白,或者使用每个变量方法VariableContinuity输入时间表的属性。

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:TT = synchronize(TT1,TT2,newTimes,'fillwithconstant','Constant',-1)同步时间表TT1TT2然后赋值1的行中的元素TT使用与相应输入时间表中的行时间不匹配的行时间。

值,当方法为“fillwithconstant”,指定为由“不变”还有一个数组。默认值为0.指定值的数据类型“不变”必须与时间表变量的数据类型兼容。

例子:TT = synchronize(TT1,TT2,'hour ','fillwithconstant','Constant','NONE')填补空白TT用字符向量“没有”当所有的变量TT包含文本。

使用插值方法时用于外推的方法,指定为由“EndValues”,要么“extrap”或者标量。如果指定标量,则其数据类型必须与时间表变量兼容。

方法

描述

“extrap”(默认)

方法指定的方法进行外推方法输入参数

标量

通过使用标量填充输入行时间范围之外的空白来推断

例子:TT = synchronize(TT1,TT2,'daily','previous','EndValues',1000)填补空白TT使用前一行值,其中TT行乘是否在从的行乘范围内TT1TT2,并与价值1000在哪里TT行乘在这个范围之外。

要包含在每个时间bin中的边,指定为由逗号分隔的对“IncludedEdge”,要么“左”“对”.的每一行时间TT是时间库的左边缘,下一个连续的行时间为右边缘。

要包含的边缘

描述

“左”(默认)

所有的箱子都包括左边的箱子边缘,除了最后一个箱子,它包括两条边

“对”

所有的箱子都包括右边的箱子边,除了第一个箱子,它包括两个边

如果你指定“左”,则时间盒包括除了最后一个盒之外的左边,最后一个盒包括两个边。如果你指定“对”,则时间箱包括除第一个箱外的右边,第一个箱包括两个边。

例子:TT = synchronize(TT1,TT2,'hour ','mean','IncludedEdge','right')包括每个时间bin的右bin边缘。

扩展功能

版本历史

在R2016b中引入

全部展开