调整时间
在时间表中重新采样或聚合数据,并解决重复或不规则的时间
语法
描述
TT2 =调整时间(
返回一个时间表,其中包含来自的变量TT1
,newTimeStep
,方法
)TT1
行时间是由时间步间隔的newTimeStep
.的调整时间
函数对变量中的数据进行重采样或聚合TT1
使用指定的函数方法
.您可以使用调整时间
:
插值数据值
TT1
在不同的时间。将数据聚合到时间箱中(例如,从月数据创建包含季度平均值的时间表)。
删除的行
TT1
有重复的行时间。把不规律的时间表变成规律的时间表,因为
newTimeStep
指定常规行时间。
的newTimeStep
输入参数是一个字符向量或字符串,用于指定预定义的时间步长。例如,当newTimeStep
是“每天”
,方法
是“的意思是”
,然后TT2
包含来自数据的每日均值TT1
.
第一排的时间TT2
时间阶梯上最早的排时间是从TT1
.行乘以TT2
覆盖的行时间范围TT1
.然而,TT2
可能不包括任何实际的行时间TT1
,因为TT1
可能没有任何行时间落在任何常规的行时间上TT2
.
在…中插入或填充值TT2
对不同的变量使用不同的方法,指定VariableContinuity
的属性TT1
.有关更多信息,请参见使用不同的方法重计时和同步时间表变量.
要从多个时间表重新采样或聚合数据,请参见同步
.
TT2 =调整时间(
控件调整时间表数据TT1
,newTimeStep
)“fillwithmissing”
方法。TT2
哪里有丢失的数据指示器TT2
是否有一行时间与任何一行时间不匹配TT1
.
如果TT1
行时间重复的行和TT2
那么行时间是否与重复的行时间匹配呢TT2
中的每组行的第一行TT1
用重复的行乘以匹配。
例子
在每小时插入不规则时间表数据
创建大约每小时的时间表数据,但在时间上有一些不规则。插值数据,使输出时间表具有固定的每小时行时间。
时间= datetime ({“2015-12-18 07:02:12”;“2015-12-18 08:00:47”;...“2015-12-18 09:01:37”;“2015-12-18 10:03:10”;...“2015-12-18 10:59:34”});Temp = [37.3; 41.9; 45.7; 42.3; 39.8);压力= [30.1;29.9;30.03;29.9;29.8);TT =时间表(时间、温度、压力)
TT =5×2时间表时间温度压力____________________ ____________ 18- 12 -2015 07:02:12 37.3 30.1 18- 12 -2015 08:00:47 41.9 29.9 18- 12 -2015 09:01:37 45.7 30.03 18- 12 -2015 10:03:10 42.3 29.9 18- 12 -2015 10:59:34 39.8 29.8
要用三次样条插值重新采样,请指定样条的
.
TT2 =调整时间(TT),“每小时”,样条的)
TT2 =5×2时间表时间温度压力____________________ ______________ 18- 12 -2015 07:00:00 37.228 30.124 18- 12 -2015 08:00:00 41.824 29.899 18- 12 -2015 09:00:00 45.694 30.029 18- 12 -2015 10:00:00 42.552 29.91 18- 12 -2015 11:00:00 39.808 29.8
汇总时间表数据并计算平均值
制作一个每15分钟测量一次体温和脉搏的时间表。
时间=[分钟(0):分钟(15):分钟(105)]';Temp = [98; 97.5; 97.9; 98.1; 97.9; 98; 98.3; 97.8);脉冲= (80;75;73;68;69;65;72;71);TT =时间表(时间、温度、脉冲)
TT =8×2时间表时间温度脉冲_______ ____ _____ 0分钟98 80 15分钟97.5 75 30分钟97.9 73 45分钟98.1 68 60分钟97.9 69 75分钟98 65 90分钟98.3 72 105分钟97.8 71
计算每小时时间箱中每个读数的平均值。当您根据时间箱聚合数据时,输出时间表的行时间是时间箱的左边缘。
TT2 =调整时间(TT),“每小时”,“的意思是”)
TT2 =2×2的时间表时间温度脉冲______ ______ _____ 0分钟97.875 74 60分钟98 69.25
指定自己的时间步长
创建一个时间表,包含时间、温度和压力的读数,大约在半小时的标记,但遗漏了一个上午9点的测量值。
时间= datetime ({“2015-12-18 07:29:53”;“2015-12-18 08:00:00”;...“2015-12-18 08:31:02”;“2015-12-18 09:30:00”});Temp = (37.3; 41.9; 45.7; 39.8);压力= (30.1;29.9;30.03;29.8);TT1 =时间表(时间、温度、压力)
TT1 =4×2时间表时间温度压力 ____________________ ____ ________ 18 - 12月18 - 2015 07:29:53 37.3 30.1 41.9 - 29.9 - 12月- 2015 08:00:00 12月18 - 45.7 - 30.03 - 2015 08:31:02 18 - 12月- 2015 09:30:00 39.8 - 29.8
指定30分钟的时间步长。方法将30分钟指定为持续时间值,因为30分钟不是预定义的时间步骤“步伐”
名称-值对的论点。的数据重新采样TT1
使用线性插值。
dt =分钟(30);TT2 =调整时间(TT1,“普通”,“线性”,“步伐”dt)
TT2 =6×2时间表时间温度压力____________________ ______________ 18- december -2015 07:00:00 32.736 30.298 18- december -2015 07:30:00 37.318 30.099 18- december -2015 08:00:00 41.9 29.9 18- december -2015 08:30:00 45.573 30.026 18- december -2015 09:00:00 42.802 29.917 18- december -2015 09:30:00 39.8 29.8
指定采样率
使用数据的列向量创建时间表。行时间在10到50毫秒之间。
强度= [100 98.7 95.2 101.4 99.1]';时间=毫秒([11 20 34 40.3 49.9])';TT1 =时间表(时间、强度)
TT1 =5×1的时间表时间强度__________ _________ 0.011秒100 0.02秒98.7 0.034秒95.2 0.0403秒101.4 0.0499秒99.1
中的数据重新采样TT1
使用100赫兹的采样率。
TT2 =调整时间(TT1,“普通”,“线性”,“SampleRate”, 100)
TT2 =5×1的时间表时间强度________ _________ 0.01秒100.14 0.02秒98.7 0.03秒96.2 0.04秒101.1 0.05秒99.076
插值时间表数据到时间矢量
创建一个包含时间、温度和压力读数的时间表。
时间= datetime ({“2015-12-18 07:29:53”;“2015-12-18 08:00:00”;...“2015-12-18 08:31:02”;“2015-12-18 09:30:00”});Temp = (37.3; 41.9; 45.7; 39.8);压力= (30.1;29.9;30.03;29.8);TT1 =时间表(时间、温度、压力)
TT1 =4×2时间表时间温度压力 ____________________ ____ ________ 18 - 12月18 - 2015 07:29:53 37.3 30.1 41.9 - 29.9 - 12月- 2015 08:00:00 12月18 - 45.7 - 30.03 - 2015 08:31:02 18 - 12月- 2015 09:30:00 39.8 - 29.8
创建一个时间矢量,并在矢量中的时间插入时间表数据。这个时间矢量从早上八点开始。如果你用“步伐”
参数,则输出时间表将从7:00 AM开始。使用时间向量的一个原因是确保输出时间表以指定的时间开始和结束。
新时期= [datetime (“2015-12-18 08:00:00”(30):分钟):datetime (“2015-12-18 09:30:00”));TT2 =调整时间(TT1,新时期,“线性”)
TT2 =4×2时间表时间温度压力 ____________________ ______ ________ 18 - 12月18 - 2015 08:00:00 41.9 29.9 45.573 - 30.026 - 12月- 2015 08:30:00 12月18 - 42.802 - 29.917 - 2015 09:00:00 18 - 12月- 2015 09:30:00 39.8 - 29.8
通过插入缺失的数据指标调整时间表
制作一个包含时间和风速和风向测量的时间表。
时间= datetime ({“2015-12-18 07:00:00”;“2015-12-18 08:03:47”;...“2015-12-18 09:00:00”;“2015-12-18 10:00:00;...“2015-12-18 10:59:34”});=风速(13.4;6.5;7.3;8.5;2.3);WindDirection =分类({“不”;“N”;“不”;“西北”;' W '});TT1 =时间表(时间,风速,WindDirection)
TT1 =5×2时间表时间WindDirection风速 ____________________ _________ _____________ 18 - 12月- 2015年07:00:00 13.4东北18 - 12月- 2015 08:03:47 6.5 N 18 - 12月- 2015年09:00:00 7.3东北18 - 12月- 2015 10:00:00 8.5西北18 - 12月- 2015 10:59:34 2.3 W
将数据调整为每小时的时间向量。插入缺失的数据指示器TT2
在哪里TT1
没有小时时间向量的数据。
TT2 =调整时间(TT1,“每小时”)
TT2 =5×2时间表时间风速风向____________________ _________ _____________ 18- 12月-2015 07:00:00 13.4网元18- 12月-2015 08:00:00 NaN18- 12月-2015 09:00:00 7.3网元18- 12月-2015 10:00:00 8.5西北18- 12月-2015 11:00:00 NaN
运用多种方法制定时间表
加载一个时间表。方法调整时间表变量调整时间
函数和针对不同变量的不同方法。
加载一个带有波士顿温度、风速和降雨量测量值的时间表。
负载bostonTT波士顿
波士顿=6×3的时间表时间温度风速雨___________________ _________________ 2016-06-09 06:03:00 59.5 0.1 0.05 2016-06-09 12:00:23 63 2.3 0.08 2016-06-09 18:02:57 61.7 3.1 0.13 2016-06-10 06:01:47 55.4 5.7 0.15 2016-06-10 12:06:00 62.3 2.6 0.87 2016-06-10 18:02:57 58.8 6.2 0.33
调整数据,生成日平均温度和风速,以及日降雨量总和。调整时间
对所有时间表变量应用相同的方法。要应用不同的方法,将索引放入时间表以选择变量,并调用调整时间
对于您使用的每种方法。
BOS =波士顿(:,{“临时”,“风速”});TT1 =调整时间(BOS,“每天”,“的意思是”)
TT1 =2×2的时间表时间临时风速 ___________________ ______ _________ 2016-06-09就是61.4 - 1.8333 2016-06-09就是58.833 - 4.8333
BOS =波士顿(:,“雨”);TT2 =调整时间(BOS,“每天”,“和”)
TT2 =2×1的时间表时间下雨 ___________________ ____ 2016-06-09就是0.26 2016-06-09就是1.35
将所有结果合并在一个时间表中,串联TT1
而且TT2
.
Tt = [tt1 tt2]
TT =2×3的时间表时间临时雨风速 ___________________ ______ _________ ____ 2016-06-09就是61.4 1.8333 0.26 2016-06-09就是58.833 4.8333 1.35
包括时间箱的右边
将时间表数据归类到小时箱中。将时间箱的右边或结束时间指定为行时间。默认情况下,时间箱的左边或开始时间是行时间。
制作一个每隔15分钟测量一次体温和脉搏的时间表。
时间=(分钟(15):分钟(15):分钟(105)]';Temp = [97.5; 97.9; 98.1; 97.9; 98; 98.3; 97.8);脉冲= (75;73;68;69;65;72;71);TT =时间表(时间、温度、脉冲)
TT =7×2时间表时间温度脉冲_______ ____ _____ 15分钟97.5 75 30分钟97.9 73 45分钟98.1 68 60分钟97.9 69 75分钟98 65 90分钟98.3 72 105分钟97.8 71
计算每小时时间箱中每个读数的平均值。指定输出时间表的行时间是时间箱的右边。因为包含了右边的边,所以在第一次时间箱中包含了60分钟的读数。
TT2 =调整时间(TT),“每小时”,“的意思是”,“IncludedEdge”,“对”)
TT2 =2×2的时间表时间温度脉冲_______ ______ ______ 60分钟97.85 71.25 120分钟98.033 69.333
计算均值,用左边作为行时间。其平均值与中值不同TT2
,因为60分钟的阅读现在在第二个时间箱里。
TT3 =调整时间(TT),“每小时”,“的意思是”)
TT3 =2×2的时间表时间温度脉冲______ ______ _____ 0分钟97.833 72 60分钟98 69.25
输入参数
TT1
- - - - - -输入时间表
时间表
输入时间表。
newTimeStep
- - - - - -输出时间表中间隔时间的时间步长
特征向量
输出时间表中间隔时间的时间步长,指定为字符向量。newTimeStep
可以是表中预定义的任何时间步骤。
时间步长 |
描述 |
---|---|
|
一年 |
|
一个季度 |
|
一个月 |
|
一个星期 |
|
有一天, |
|
一个小时 |
|
一分钟 |
|
一秒钟 |
dt
- - - - - -任何大小的时间步长
datetime标量|时间常数
任意大小的时间步长,指定为日期时间标量或持续时间标量。
数据类型:datetime
|持续时间
|calendarDuration
Fs
- - - - - -采样率
积极的数字标量
抽样速率,指定为正数值标量。Fs
每秒采样个数(Hz)。
新时期
- - - - - -新的时间向量
datetime向量|持续时间向量
新的时间向量,指定为日期时间向量或持续时间向量。新的时间向量必须是列向量。新时期
可以有不同的行数TT1
.
方法
- - - - - -调整时间表数据的方法
特征向量|字符串标量|函数处理
调整时间表数据的方法,指定为字符向量、字符串标量或函数句柄。您可以使用列出的任何方法来调整数据TT1
.
填补方法
的行复制数据TT1
当行次数为TT2
的匹配行次数TT1
.然后,填充剩下的行TT2
数据指标缺失。
若要用常量而不是缺失的数据指示器填充其余行,请指定方法
作为“fillwithconstant”
并使用“不变”
名称-值对的论点。
方法 |
描述 |
---|---|
|
用缺失的数据指示器填补空白(例如, |
|
的值填充空白 |
最近邻方法
的行复制数据TT1
一排排的TT2
根据指定的方法,它的行次数是最接近的匹配。TT1
必须按行次数排序。
方法 |
描述 |
---|---|
|
从输入时间表中最近的上一个近邻复制数据,从行时间向量的末尾开始。如果有重复的行时间,那么 |
|
在输入时间表中,从行时间向量的开头开始,从下面最近的邻居复制数据。如果有重复的行时间,那么 |
|
从输入时间表中最近的位置复制数据。 |
插值方法
插入数据值TT2
的相邻行中的数据值TT1
.输入时间表必须具有已排序且唯一的行时间。的第一行和最后一行时间以外的数据如何外推TT1
,可以使用“EndValues”
名称-值对的论点。
方法 |
描述 |
---|---|
|
使用线性插值。 |
|
使用分段三次样条插值。 |
|
使用保持形状的分段三次插值。 |
|
使用改进的Akima立方Hermite插值。 |
聚合方法
的行聚合数据TT1
的行时间指定的超时箱TT2
.的每一行时间TT2
是时间容器的左边缘,下一个连续行时间是右边缘。默认情况下,左边包含在时间箱中。要控制时间容器中是否包括左侧或右侧的容器边,请使用“IncludedEdge”
名称-值对的论点。
如果你指定时间向量新时期
,然后新时期
必须按升序排序。
所有列出的方法都省略了南
年代,NaT
S,以及其他缺失的数据指标,除了函数
.若要包含丢失的数据指示器,请指定函数
作为在聚合数据时包含它们的函数句柄。
方法 |
描述 |
---|---|
|
将每个时间箱中的值相加。 |
|
计算每个时间箱中的值的乘积。 |
|
计算每个时间箱中的值的平均值。 |
|
计算每个时间箱中值的中位数。 |
|
计算每个时间仓中的值的模式。 |
|
计算每个时间箱中的最小值。 |
|
计算每个时间箱中的最大值。 |
|
计算每个时间箱中的值的数量。 |
|
在每个时间箱中使用第一个值。 |
|
使用每个时间bin中的最后一个值。 |
|
使用函数句柄指定的函数(例如, |
默认的方法
默认方法相当于离开方法
未指明的。
方法 |
描述 |
---|---|
|
方法指定的每个变量方法,可以用缺失的数据指示器填充空白 |
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:TT2 =调整时间(TT1,新时期,“常数”,1)
创建时间表TT2
然后赋值-1
的行中的元素TT2
的行时间不匹配的行时间TT1
.
常数
- - - - - -方法为时填充间隙的值“fillwithconstant”
数组
当方法为时,填补空白的值“fillwithconstant”
,指定为逗号分隔的对,由“不变”
和一个数组。默认值为0
.指定的值的数据类型“不变”
必须与时间表变量的数据类型兼容。
例子:TT2 =调整时间(TT1,“每小时”、“fillwithconstant”,“常数”,“没有一个”)
填补了空白TT2
用字符向量“没有”
当所有的变量TT2
包含文本。
EndValues
- - - - - -采用插值法时的外推方法
“extrap”
(默认)|标量
使用插值方法时的外推方法,指定为逗号分隔的对,由“EndValues”
,要么“extrap”
或一个标量。如果指定标量,则其数据类型必须与所有时间表变量兼容。
方法 |
描述 |
---|---|
|
方法指定的方法进行外推 |
标量 |
通过用标量填充输入行时间范围之外的空白进行外推 |
例子:TT2 =调整时间(TT1,“每天”,“以前”,“EndValues”,1000年)
填补了空白TT2
使用前面的行值TT2
行时间是否在行时间的范围内TT1
,并与值1000
在哪里TT2
行乘以在这个范围之外。
IncludedEdge
- - - - - -要包含在每个时间箱中的边
“左”
(默认)|“对”
要包含在每个时间库中的边,指定为逗号分隔的对,由“IncludedEdge”
,要么“左”
或“对”
.的每一行时间TT2
是时间容器的左边缘,下一个连续行时间是右边缘。
包括边缘 |
描述 |
---|---|
|
所有的箱子都包括左箱子边,除了最后一个箱子,它包括两个边 |
|
所有的箱子都包括右边的箱子边,除了第一个箱子,它包括两边的边 |
如果您指定“左”
,则时间箱包括左边,但最后一个箱包括两条边。如果您指定“对”
,则时间箱包括右边的边,但第一个箱包括两条边。
例子:TT2 =调整时间(TT1,“每小时”、“说”、“IncludedEdge”,“正确的”)
包括每个时间库的右库边。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
插值方法
样条的
而且“makima”
不受支持。的
“EndValues”
不支持名称-值参数。以重来
“普通”
不支持行时间间隔。输入时间表中的所有变量都必须支持方法缺少的值(浮点、类别、日期时间、持续时间或文本)
“最近的”
,“下一个”
,“以前”
.
有关更多信息,请参见高大的数组.
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
即使与具有规则时间步长的行时间同步,输出时间表的行时间也被认为是不规则的。
的
“makima”
不支持插值方法。如果
VariableContinuity
属性的输入时间表不是常数,则此函数忽略它。的
“周”
,“月”
,“季度”
不支持时间步长。如果输入时间表的行时间为
datetime
值,那么“每天”
而且“年”
时间步也不支持。
有关更多信息,请参见时间表的代码生成(MATLAB编码器)而且代码生成的时间表限制(MATLAB编码器).
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
介绍了R2016bR2021a:“SamplingRate”
将被删除
的“SamplingRate”
名称-值参数将在未来的版本中删除。使用“SampleRate”
代替。相应的时间表属性也被命名SampleRate
.
对于向后兼容性,您仍然可以指定“SamplingRate”
作为name-value参数的名称。但是,该值被分配给SampleRate
财产。
R2021a:“fillwithconstant”
方法替换从输入时间表获取的行中缺失的数据
如果输入时间表有缺少数据值的行,例如南
S,这些行中的任何一行都包含在输出时间表中,然后使用“fillwithconstant”
方法用常量替换那些缺失的值。在以前的版本中“fillwithconstant”
方法不替换从输入时间表获取的行中缺少的值。
例如,此代码创建一个时间表南
在第二行。
T =时间表(datetime (“今天”) + [1 2 3]', [1 nan 2]')
T = 3×1时间表时间Var1 ___________ ____ 1月20日-2022年1月21日-2022年NaN 1月22日-2022年2
这叫调整时间
取代了南
与0
.但是在以前的版本中,这个调用会留下南
在输出时间表中。
T1 =调整时间(T)“每天”,“fillwithconstant”,“不变”, 0)
T1 = 3×1时间表时间Var1 ___________ ____ 1月20日-2022年1月21日-2022年0 1月22日-2022年2
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。