主要内容

时间表

带有时间戳的行和不同类型的变量的时间表数组

描述

时间表是一种将时间与每一行关联起来的表类型。与表一样,时间表存储面向列的数据变量,只要具有相同的行数,它们就可以具有不同的数据类型和大小。此外,时间表还提供特定于时间的功能,以便在一个或多个时间表中对带有时间戳的数据进行对齐、合并和执行计算。

行乘以一个时间表是datetime持续时间值标记行。您可以按行时间和变量索引到时间表中。要编入时间表,请使用圆括号()返回子表或花括号{}提取内容。您可以使用名称引用变量和行次数的向量。有关索引的更多信息,请参见在时间表中选择时间表格访问数据

创建

要创建时间表,可以使用readtimetable函数,或者可以转换具有其他数据类型的变量。

转换:

或者,您可以使用时间表下面描述的函数。从输入数组中创建一个时间表,或者为以后填写的变量预分配空间。要指定行时间,可以使用行时间的输入向量,也可以使用采样率或时间步长创建行时间。

描述

从输入数组创建

例子

TT =时间表(rowTimesvar1,…,varN根据输入数据变量创建时间表var1,…,varN时间向量rowTimes.只要数据变量具有相同的行数,它们就可以具有不同的大小和数据类型。rowTimes必须是一个datetime持续时间向量,行数相同。

例子

TT =时间表(var1,…,varN“RowTimes”,rowTimes指定rowTimes作为行乘以的来源TT.使用此语法时,行名乘以向量TT总是时间,即使rowTimes是具有不同名称的工作区变量。

例子

TT =时间表(var1,…,varN“SampleRate”,Fs使用抽样率Fs计算有规则间隔的行时间。Fs是指定每秒采样次数(Hz)的正数值标量。第一行时间是零秒。

例子

TT =时间表(var1,…,varN“步伐”,dt使用时间步长dt计算有规则间隔的行时间。dt是一个持续时间calendarDuration值,该值指定连续行间隔的时间长度。第一行时间是零秒。

Preallocate时间表变量

例子

TT =时间表(“大小”,深圳“VariableTypes”,varTypes“RowTimes”,rowTimes创建一个时间表,并为具有指定数据类型的变量预分配空间。深圳是一个双元素数字数组,在哪里深圳(1)指定行数和深圳(2)指定变量的数量。varTypes指定变量的数据类型。输入的次数rowTimes必须等于深圳(1)

例子

TT =时间表(“大小”,深圳“VariableTypes”,varTypes“SampleRate”,Fs预分配具有数据类型的变量,并使用抽样率添加行次数Fs.第一行时间是零秒。

例子

TT =时间表(“大小”,深圳“VariableTypes”,varTypes“步伐”,dt预分配具有数据类型的变量,并使用时间步长添加行时间dt.第一行时间是零秒。

设置变量名称、维度名称或开始时间

例子

TT =时间表(___名称,值使用一个或多个名称-值对参数指定额外的输入参数。例如,可以使用“VariableNames”名称-值对。属性也可以指定开始时间“开始时间”具有抽样速率或时间步长的名称-值对。您可以将此语法与前面语法的任何输入参数一起使用。

输入参数

全部展开

输入变量,指定为具有相同行数的数组。输入变量可以具有不同的大小和不同的数据类型,只要它们具有相同的行数。

常见的输入变量有数字数组、逻辑数组、字符串数组、结构数组和单元格数组。

输入变量也可以是数组对象。这样的数组必须支持表单的索引金宝appvar (indexN index1…),在那里index1是一个数字或逻辑向量,对应于该变量的行var.此外,数组必须同时实现avertcat方法和大小方法昏暗的论点。

与时间表的行相关联的时间,指定为datetime向量或持续时间向量。每个时间标记输出时间表中的一行,TT.时间值rowTimes不需要是唯一的、有序的或常规的。

预先分配的时间表的大小,指定为两个元素的数字向量。第一个元素深圳指定行数,第二个元素指定时间表变量的数量。

预先分配的变量的数据类型,指定为字符向量的单元格数组或字符串数组。指定的类型的数量varTypes必须等于?的第二个元素指定的变量数深圳

varTypes可以包含任何数据类型的名称,包括表中显示的名称。

数据类型名称

每个元素的初始值

“双”“单一”

双或单精度0

“doublenan”“doubleNaN”“singlenan”“singleNaN”

双或单精度

“int8”“int16”“int32”“int64”

带符号的8、16、32或64位整数0

“uint8”“uint16”“uint32”“uint64”

无符号8-,16-,32-或64位整数0

“逻辑”

0

“分类”

<定义>绝对价值

“datetime”

NaTdatetime价值

“持续时间”

0秒,持续时间价值

“calendarDuration”

0天,作为一个calendarDuration价值

“字符串”

""(不含字符的1 × 1字符串)

“cellstr”

{"}(带有0 × 0字符数组的单元格)

“细胞”

{[]}(单元格为0 × 0双数组)

“结构”

没有字段的标量结构

“表”

无变量表

“时间表”

没有变量的时间表NaT行次

对于任何其他数据类型,初始值是该类型或类用来“填充”数组中未赋值元素的值。

如果您指定“字符”作为一种数据类型时间表将相应的变量预分配为字符向量的单元格数组,而不是字符数组。最佳实践是避免创建字符数组的表或时间表变量。当处理表或时间表中的文本数据时,考虑使用字符串数组或类别数组。

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

时间步长,指定为a持续时间标量或calendarDuration标量。

如果您指定dt作为一个calendarDuration值,并指定“开始时间”的值“开始时间”必须是一个datetime标量。

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:TT =时间表(rowTimes T W, VariableNames,{“温度”、“风速”})从输入数组创建时间表TW,并命名相应的时间表变量温度风速

变量名,指定为字符向量的单元格数组或元素为非空且不同的字符串数组。

  • 数组中的名称数量必须等于时间表变量的数量。

  • 时间表函数还将变量名存储在VariableNames时间表的属性。

  • 变量名可以有任何Unicode®字符,包括空格和非ascii字符。

自从R2021a

维度名称,指定为字符向量的双元素单元数组或元素为非空且不同的双元素字符串数组。

  • 时间表函数中还存储维度名称DimensionNames时间表的属性。

  • 维度名称可以有任何Unicode字符,包括空格和非ascii字符。

在R2021a之前,您只能通过设置DimensionNames财产。

开始时间,指定为datetime标量或持续时间标量。开始时间也是时间表的第一行的行时间。

您可以指定“开始时间”只有当您还指定“SampleRate”“步伐”名称-值对的论点。

  • 如果开始时间为adatetime值,然后行乘以TTdatetime值。

  • 如果开始时间为a持续时间值,则行时间为持续时间。

  • 如果时间步长dt是一个calendarDuration值,则开始时间必须为datetime价值。

属性

全部展开

访问时间表元数据属性

时间表包含描述时间表、它的行时间和它的变量的元数据属性。使用语法访问这些属性timetableName. properties。PropertyName,在那里PropertyName属性的名称。例如,您可以访问时间表中变量的名称TT通过TT.Properties.VariableNames财产。

您可以使用该语法返回元数据属性的摘要timetableName. properties

的时间表提供元数据访问属性属性,因为您可以使用点语法直接访问时间表数据。例如,if时刻表TT有一个名为Var1,则可以使用语法访问变量中的值TT。Var1

时间表的元数据

维度名称,指定为字符向量的双元素单元数组或双元素字符串数组,其元素非空且不同。

  • 维度名称可以有任何Unicode字符,包括空格和非ascii字符。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

您可以使用二维名称访问时间表数据。

  • 如果您使用点语法和第一个维度名称,那么您可以以向量的形式访问行次数。

  • 如果您使用点语法和第二个维度名称,那么来自所有变量的数据将被连接在一个数组中,就像您使用索引到时间表中一样{:,:}语法。

例子

创建时间表并显示其维度名称。您可以使用带有点语法的维度名称访问行时间和数据。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3]);TT.Properties.DimensionNames
ans =1 x2单元格{'时间'}{}“变量”

使用第一个维度名访问行次数。

TT。Time
ans =3 x1 datetime18 - 12月- 2015年12月19日- 12月- 2015 20 - - 2015

使用第二个维度名称访问数据。该语法等价于TT{:、:}

TT。变量
ans =3×337.3000 30.1000 13.4000 39.1000 30.300 6.5000 42.3000 29.9000 7.3000

属性修改其维度的名称属性。DimensionNames财产。更改维度名称后,可以使用语法访问行时间和数据TT。日期TT。WeatherData分别。

TT.Properties.DimensionNames = {“日期”“WeatherData”};TT。属性
ans = TimetableProperties属性:描述:“用户数据:[]DimensionNames:{“日期”“WeatherData”}VariableNames:{“Var1”“Var2”“Var3”}VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowTimes: [3 x1 datetime)开始时间:18 - 12月- 2015 SampleRate:南步伐:1 d CustomProperties:不设置自定义属性。使用addprop和rmprop修改CustomProperties。

时间表描述,指定为字符向量或字符串标量。该描述在使用时是可见的总结函数。

如果使用字符串标量指定此属性,则将其转换为字符向量并存储。

例子

创建一个时间表。修改时刻表的变量名和描述信息。显示结果的摘要。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3]);TT.Properties.VariableNames = {“临时”“压力”“风速”};TT.Properties.Description =“2015年12月天气数据”;总结(TT)
描述:2015年12月的天气数据RowTimes: Time: 3x1 datetime Values: Min 18-Dec-2015 Median 19-Dec-2015 Max 20-Dec-2015 TimeStep 24:00:00变量:Temp: 3x1 double Values: Min 37.3中位数39.1 Max 42.3 Pressure: 3x1 double Values: Min 29.9中位数30.03 Max 30.1 WindSpeed: 3x1 double Values: Min 6.5中位数7.3 Max 13.4

附加的时间表信息,指定为数组。可以使用此属性将任何类型的数据附加到时间表。

例子

创建一个时间表。修改变量名。附加匿名功能作为与时间表相关联的用户数据。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3]);TT.Properties.VariableNames = {“临时”“压力”“风速”};华氏2摄氏度= @(x)(5.0/9.0)。* (x - 32);TT.Properties.UserData = Fahrenheit2Celsius;TT。属性
ans = TimetableProperties with properties: Description: " UserData: @(x)(5.0/9.0).*(x-32) DimensionNames: {'Time' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [3x1 datetime] StartTime: 18- 12 2015 SampleRate: NaN TimeStep: 1d CustomProperties:没有设置自定义属性。使用addprop和rmprop修改CustomProperties。

行乘以元数据

行次数,指定为datetime向量或持续时间向量。

  • 每一行的时间表都必须有一行的时间。

  • 一个时间表可以有重复的、无序的或NaT值。

  • 当您查看时间表时,行时间是可见的。此外,您可以使用括号或花括号中的行时间来访问时间表数据。

  • 另一种访问行时间的方法是使用点语法和时间表的第一个维度的名称。

例子

创建一个时间表。然后使用属性。RowTimes财产。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3])
TT =3×3的时间表时间Var1 Var2 Var3  ___________ ____ _____ ____ 18 - 12月- 2015 37.3 30.1 13.4 19 - 12月20 - 12月- 2015 - 2015 39.1 30.03 6.5 42.3 29.9 7.3
日期= datetime (2017, 1:3);TT.Properties.RowTimes =日期
TT =3×3的时间表时间Var1 Var2 Var3  ___________ ____ _____ ____ 01 - 1月- 2017 37.3 30.1 13.4 02 - 1月- 2017 39.1 30.03 6.5 03 - 1月- 2017 42.3 29.9 7.3

另一种访问行时间的方法是使用带有时间表第一个维度名称的点语法。

TT.Properties.DimensionNames
ans =1 x2单元格{'时间'}{}“变量”
TT。Time
ans =3 x1 datetime01 - 1月- 2017年02 - 1月- 2017年03 - 1月- 2017

行时间的开始时间,指定为datetime标量或持续时间标量。起始时间与时间表第一行的行时间相同,且数据类型相同。

  • 如果开始时间为adatetime值,然后行乘以TTdatetime值。

  • 如果开始时间为a持续时间值,则行时间为持续时间。

  • 如果时间步长是acalendarDuration值,则开始时间必须为datetime价值。

如果时间表为空,则开始时间为

例子

创建一个时间表。在这个时间表中,由于连续行之间的时间步长不相同,所以这个时间表是不规则的。

TT =时间表(datetime ({“2015-12-18”“2015-12-20”“2015-12-21”}),...(37.3; 39.1; 42.3), (13.4; 6.5; 7.3) {“N”“本身”“西北”});TT.Properties.VariableNames = {“温度”“风速”“WindDirection”
TT =3×3的时间表时间温度WindDirection风速  ___________ ___________ _________ _____________ 18 - 12月- 2015年12月37.3 - 13.4 {' N '} 20 - 39.1 - 6.5 - 2015 {SE的}21 - 12月- 2015 42.3 - 7.3{“西北”}

显示其属性。价值开始时间属性等于第一行时间。无论一个时间表是规则的还是不规则的,它总是有一个开始时间,除非它是空的。

TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [3x1 datetime] StartTime: 18- december 2015 SampleRate: NaN TimeStep: NaN CustomProperties:没有设置自定义属性。使用addprop和rmprop修改CustomProperties。

修改开始时间财产。注意,所有的行时间都有新值。对于每一行时间,值的变化等于第一行时间的原始值与新的开始时间之间的差。

TT.Properties.StartTime = datetime (“2018-04-09”
TT =3×3的时间表时间温度WindDirection风速  ___________ ___________ _________ _____________ 09 - 4月- 2018 37.3 13.4 {' N '} 11 - 4月- 2018 39.1 - 6.5 {SE的}12 - 4月- 2018年42.3 - 7.3{“西北”}

采样率,指定为正数值标量。采样率是指每秒的采样次数(Hz)。

如果行时间不规律,或者时间表为空,则抽样率为

例子

时间步长,指定为a持续时间标量或calendarDuration标量。

  • 如果你指定时间步长为acalendarDuration值(例如日历月),则行时间向量必须为datetime向量。

  • 如果你指定时间步长为a持续时间值(例如,秒),则行乘向量可以是datetime持续时间向量。

如果行时间不是规则的,或者时间表为空,则时间步长为

例子

制定一个固定的时间表。在这个时间表中,行时间是使用相同的时间步骤创建的持续时间。

强度= [100;98.7;95.2;101.4;99.1);TT =时间表(强度,“步伐”秒(0.01))
TT =5×1的时间表时间强度________ _________ 0秒100 0.01秒98.7 0.02秒95.2 0.03秒101.4 0.04秒99.1

显示其属性。的步伐属性将时间步长存储为一个持续时间。

TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Intensity'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [5x1 duration] StartTime: 0 sec SampleRate: 100 TimeStep: 0.01 sec CustomProperties:不设置自定义属性。使用addprop和rmprop修改CustomProperties。

修改步伐财产。开始时间是一样的,但是其他行时间是不同的因为时间步长变大了。然而,该变量强度是相同的。

TT.Properties.TimeStep =秒(0.04)
TT =5×1的时间表时间强度________ _________ 0秒100 0.04秒98.7 0.08秒95.2 0.12秒101.4 0.16秒99.1

变量的元数据

变量名,指定为字符向量的单元格数组或字符串数组,其元素非空且不同。名称的数量必须等于变量的数量。

  • 变量名可以有任何Unicode字符,包括空格和非ascii字符。

  • 变量名在查看时间表和使用总结函数。此外,您可以在圆括号、花括号或点索引中使用变量名来访问表数据。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个带有默认变量名的时间表。然后使用属性。VariableNames财产。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3])
TT =3×3的时间表时间Var1 Var2 Var3  ___________ ____ _____ ____ 18 - 12月- 2015 37.3 30.1 13.4 19 - 12月20 - 12月- 2015 - 2015 39.1 30.03 6.5 42.3 29.9 7.3
TT.Properties.VariableNames = {“临时”“压力”“风速”
TT =3×3的时间表时间温度压力风速  ___________ ____ ________ _________ 18 - 12月- 2015 37.3 30.1 13.4 19 - 12月20 - 12月- 2015 - 2015 39.1 30.03 6.5 42.3 29.9 7.3

显示和修改变量的基本方法是使用点语法通过名称访问变量。

TT。Temp
ans =3×137.3000 39.1000 42.3000
TT.Pressure (3) = 30
TT =3×3的时间表时间温度压力风速  ___________ ____ ________ _________ 18 - 12月- 2015 37.3 30.1 13.4 19 - 12月20 - 12月- 2015 - 2015 39.1 30.03 6.5 42.3 7.3 30

变量描述,指定为字符向量的单元格数组或字符串数组。此属性可以是空单元格数组,这是默认值。如果数组不是空的,那么它必须包含和变量一样多的元素。可以为没有描述的变量指定单独的空字符向量或空字符串。

  • 的变量描述是可见的总结函数。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个时间表。修改变量名称和描述。显示结果的摘要。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3]);TT.Properties.VariableNames = {“临时”“压力”“风速”};TT.Properties.VariableDescriptions = {的温度(外部)...“Hg压力”...“123传感器风速”};总结(TT)
RowTimes: Time: 3x1 datetime值:Min 18-Dec-2015中位数19-Dec-2015 Max 20-Dec-2015 TimeStep 24:00:00变量:Temp: 3x1 double属性:描述:温度(外部)值:Min 37.3中位数39.1 Max 42.3 Pressure: 3x1 double属性:描述:Hg中的压力值:Min 29.9中位数30.03 Max 30.13x1 double属性:描述:123传感器风速值:最小6.5中位数7.3最大13.4

可变单元,指定为字符向量的单元格数组或字符串数组。此属性可以是空单元格数组,这是默认值。如果数组不是空的,那么它必须包含和变量一样多的元素。可以为没有单元的变量指定单独的空字符向量或空字符串。

  • 变量单位在使用时是可见的总结函数。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个时间表。修改变量名和单元。显示结果的摘要。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...[37.3; 39.1; 42.3], [30.1; 30.03; 29.9], [13.4; 6.5; 7.3]);TT.Properties.VariableNames = {“临时”“压力”“风速”};TT.Properties.VariableUnits = {“度”毫米汞柱的“英里”};总结(TT)
变量:温度:3x1 double属性:单位:度F值:Min 37.3中值39.1 Max 42.3 Pressure: 3x1 double属性:单位:mm Hg值:Min 29.9中值30.03 Max 30.1 WindSpeed: 3x1 double属性:单位:mph值:最小6.5中位数7.3最大13.4

连续或离散变量的状态,指定为字符向量的单元格数组或字符串数组。这个属性可以是一个空数组,这是默认值。如果数组不是空的,那么它必须包含和变量一样多的元素。每个元素可以是任意一个“设置”“连续”“步骤”,或“事件”

中的值VariableContinuity影响如何调整时间同步功能的工作。如果您指定VariableContinuity并调用调整时间同步,则不需要指定方法。相反,调整时间同步使用以下默认方法填写输出时间表变量:

  • “设置”-使用该类型的缺失数据指示器填充值(例如对于数值型变量)。

  • “连续”-使用线性插值填充值。

  • “步骤”—使用以前的值填写。

  • “事件”-使用该类型的缺失数据指示器填充值(例如对于数值型变量)。

如果你指定一个方法作为输入参数调整时间同步,则该方法将重写中指定的值VariableContinuity

有关使用的更多信息VariableContinuity财产,看到使用不同的方法重新计时和同步时间表变量

例子

创建一个时间表。指定一个matlab.tabular.Continuity每个变量的值。

TT =时间表(datetime ({“2015-12-18”“2015-12-19”“2015-12-20”}),...(37.3; 39.1; 42.3), (13.4; 6.5; 7.3) {“N”“本身”“西北”});TT.Properties.VariableNames = {“温度”“风速”“WindDirection”};TT.Properties.VariableContinuity = {“连续”“事件”“事件”};TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [continuous event event] RowTimes: [3x1 datetime] StartTime: 18- december 2015 SampleRate: NaN TimeStep:1d CustomProperties:不设置自定义属性。使用addprop和rmprop修改CustomProperties。

自定义元数据

时间表及其变量的自定义元数据,指定为CustomProperties对象。

CustomProperties对象是可添加到时间表中的定制元数据的容器。默认情况下,CustomProperties为零的属性。添加到的每个属性CustomProperties可以包含表元数据或变量元数据。如果属性包含变量元数据,那么它的值必须是一个数组,数组中的元素数量必须等于时间表变量的数量。

  • 要将自定义元数据的属性添加到时间表,请使用addprop函数。

  • 要访问或修改自定义元数据,请使用语法timetableName.Properties.CustomProperties。PropertyName.在这个语法,PropertyName您在添加属性时选择的名称是否使用addprop

  • 要删除属性,请使用rmprop函数。

注意:您可以添加或删除只有属性用于自定义元数据addproprmprop.控件的属性不能添加或删除timetableName. properties对象。

例子

创建一个包含天气数据的时间表。

TT =时间表(datetime ({“2015-12-18”“2015-12-20”“2015-12-21”}),...(37.3; 39.1; 42.3), (13.4; 6.5; 7.3) {“N”“本身”“西北”});TT.Properties.VariableNames = {“温度”“风速”“WindDirection”
TT =3×3的时间表时间温度WindDirection风速  ___________ ___________ _________ _____________ 18 - 12月- 2015年12月37.3 - 13.4 {' N '} 20 - 39.1 - 6.5 - 2015 {SE的}21 - 12月- 2015 42.3 - 7.3{“西北”}

要描述测量这些数据的仪器和输出文件的名称,可以使用addprop函数。的仪器属性具有应用于的变量的元数据TT.的OutputFile属性具有表元数据。

TT = addprop (TT, {“工具”“OutputFile”},{“变量”“表”});TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [3x1 datetime] StartTime: 18- december 2015 SampleRate: NaN TimeStep:NaN自定义属性(使用t.Properties.CustomProperties.): OutputFile: [] Instruments: []

使用点语法为定制的元数据赋值。将文本值数组分配给自定义元数据时,最佳实践是使用字符串数组,而不是字符向量的单元格数组。如果CustomProperties是字符向量的单元格数组,则没有机制阻止您以后将非文本值作为单元格数组的元素分配。

TT.Properties.CustomProperties.Instruments = [“温度计”“风速计”“风向标”];TT.Properties.CustomProperties.OutputFile =“weatherReadings.csv”;TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [3x1 datetime] StartTime: 18- december 2015 SampleRate: NaN TimeStep:NaN自定义属性(使用t.Properties.CustomProperties.): OutputFile: ' weatherreads .csv' Instruments:["温度计" "风速表" "风向标"]

删除OutputFile的财产TT

TT = rmprop (TT,“OutputFile”);TT。属性
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [3x1 datetime] StartTime: 18- december 2015 SampleRate: NaN TimeStep:NaN自定义属性(使用t.Properties.CustomProperties.):仪器:["温度计" "风速表" "风向标"]

例子

全部折叠

在时间表中存储关于不同时间测量的天气情况的数据。除了存储之外,时间表还提供了将数据同步到指定时间的函数。你也可以在时间表上做注释,描述你的工作和时间表上的变量。

从工作区变量创建一个时间表。中的值MeasurementTime成为时间表上的排时间。所有其他输入参数都成为时间表变量。使用此语法时,行名乘以vector和变量TT是相应输入参数的名称。

MeasurementTime = datetime ({“2015-12-18 08:03:05”“2015-12-18 10:03:17”“2015-12-18 12:03:13”});Temp = (37.3; 39.1; 42.3);压力= (30.1;30.03;29.9);=(13.4; 6.5; 7.3);风速TT =时间表(MeasurementTime、温度、压力、风速)
TT =3×3的时间表MeasurementTime临时压力风速  ____________________ ____ ________ _________ 18 - 12月- 2015年18 - 12月- 2015 10:03:17 08:03:05 37.3 30.1 13.4 39.1 30.03 6.5 18 - 12月- 2015 12:03:13 42.3 29.9 7.3

以每小时的时间步长同步天气数据到常规时间。使用线性插值将数据调整到新的时间。

TT2 =调整时间(TT),“每小时”“线性”
TT2 =6×3的时间表MeasurementTime Temp Pressure WindSpeed ____________________ ______________ _________ 18-Dec-2015 08:00:00 37.254 30.102 13.577 18-Dec-2015 09:00:00 38.152 30.067 10.133 18-Dec-2015 10:00:00 39.051 30.032 6.6885 18-Dec-2015 11:00:00 40.613 29.969 6.8783 18-Dec-2015 12:00:00 42.214 29.903 7.2785 18-Dec-2015 13:00:00 43.815 29.838 7.6788

由于输出的行时间不是测量的时间,因此重命名行时间向量。这个向量也是时间表的第一个维度的名称。

TT2.Properties。DimensionNames{1} =“InterpolatedTimes”
TT2 =6×3的时间表InterpolatedTimes Temp Pressure WindSpeed ____________________ ______________ _________ 18-Dec-2015 08:00:00 37.254 30.102 13.577 18-Dec-2015 09:00:00 38.152 30.067 10.133 18-Dec-2015 10:00:00 39.051 30.032 6.6885 18-Dec-2015 11:00:00 40.613 29.969 6.8783 18-Dec-2015 12:00:00 42.214 29.903 7.2785 18-Dec-2015 13:00:00 43.815 29.838 7.6788

注释TT2与描述。你可以标注TT2以及通过元数据访问的变量TT2。属性

TT2.Properties。描述="天气数据,插入到每小时的常规时间";TT2。属性
UserData: [] DimensionNames: {'InterpolatedTimes' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} VariableDescriptions: {} VariableUnits: {} variablecontinity: [] RowTimes: [6x1 datetime] StartTime:18- 12 -2015 08:00:00 SampleRate: 2.7778e-04 TimeStep: 01:00:00 CustomProperties:没有设置自定义属性。使用addprop和rmprop修改CustomProperties。

您可以使用点语法来访问时间表的行时间。此外,您还可以使用点语法访问单个变量,或者使用时间表的第二个维度名称访问时间表中的所有数据。

从mat -文件加载一个时间表在户外.显示前三行。

负载在户外户外(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

使用行乘以向量的名称访问行乘以。这个名称也是时间表的第一个维度的名称。在户外将行次数存储为datetime向量。显示前三次。

outdoors.Time (1:3)
ans =3 x1 datetime2015-11-15 00:00:24 2015-11-15 01:30:24 2015-11-15 03:00:24

使用变量名将温度作为数字向量访问。

outdoors.TemperatureF (1:3)
ans =3×151.3000 51.5000 51.5000

使用语法以矩阵的形式访问所有的时间表数据在户外。变量.该语法使用时间表的第二个维度名称,相当于使用花括号索引访问所有内容,户外{:,:}.但是,这个矩阵不包括行时间,因为行时间的向量是时间表元数据,而不是变量。如果时间表数据不能连接到矩阵中,则会引发错误消息。

在户外。变量
ans =51×349.0000 51.3000 29.6100 48.9000 51.5000 29.6100 48.8000 51.5000 29.6100 48.7000 51.5000 29.6000 48.8000 51.5000 29.6000 49.0000 51.5000 29.6000 49.1000 51.3000 29.6000 49.1000 51.3000 29.6100 49.1000 51.5000 29.6100⋮

重命名的第二个维度在户外.如果更改名称,则可以使用新名称访问数据。

outdoors.Properties。DimensionNames {2} =“数据”;在户外。数据
ans =51×349.0000 51.3000 29.6100 48.9000 51.5000 29.6100 48.8000 51.5000 29.6100 48.7000 51.5000 29.6000 48.8000 51.5000 29.6000 49.0000 51.5000 29.6000 49.1000 51.3000 29.6000 49.1000 51.3000 29.6100 49.1000 51.5000 29.6100⋮

创建一个时间表使用“RowTimes”名称-值对的论点。注意,行的名称乘以向量TT时间,而不是MeasurementTime.当您使用此语法时,行乘以向量的名称总是时间

MeasurementTime = datetime ({“2015-12-18 08:03:05”“2015-12-18 10:03:17”“2015-12-18 12:03:13”});Temp = (37.3; 39.1; 42.3);压力= (29.4;29.6;30.0);降雨= (0.1;0.9;0.0);StormDuration =[(2)小时(1);小时;南);TT =时间表(温度、压力、降雨、StormDuration“RowTimes”MeasurementTime)
TT =3×4时间表时间温度压力降雨StormDuration  ____________________ ____ ________ ______ _____________ 18 - 12月- 2015年08:03:05 37.3 29.4 0.1 1小时18 - 12月- 2015年10:03:17 39.1 29.6 0.9 42.3 2小时18 - 12月- 2015 12:03:13 30 0南人力资源

创建一个时间表。如果有不是工作区变量的输入参数,则时间表函数将默认名称赋给相应的行乘以向量和时间表的变量。例如,如果您将一些输入参数转置为列向量,那么这些输入参数就不是工作区变量。默认名称为时间对于行乘以向量VarNNth时间表变量。

T =小时(1:3);Temp = (37.3; 39.1; 42.3);P = [29.4 29.6 30];TT =时间表(T '临时P ')
TT =3×2时间表时间Temp Var2 ____ ____ ____ 1小时37.3 29.4 2小时39.1 29.6 3小时42.3 30

使用100hz的采样率创建一个常规的时间表。

强度= [100;98.7;95.2;101.4;99.1);TT =时间表(强度,“SampleRate”, 100)
TT =5×1的时间表时间强度________ _________ 0秒100 0.01秒98.7 0.02秒95.2 0.03秒101.4 0.04秒99.1

创建一个以30秒作为第一行时间的时间表。要指定开始时间,请使用“开始时间”名称-值对的论点。

TT =时间表(强度,“SampleRate”, 100,“开始时间”秒(30))
TT =5×1的时间表时间强度_________ _________ 30秒100 30.01秒98.7 30.02秒95.2 30.03秒101.4 30.04秒99.1

创建一个固定的时间表,使用0.01秒的时间步长。您必须指定时间步长为持续时间calendarDuration价值。

强度= [100;98.7;95.2;101.4;99.1);TT =时间表(强度,“步伐”秒(0.01))
TT =5×1的时间表时间强度________ _________ 0秒100 0.01秒98.7 0.02秒95.2 0.03秒101.4 0.04秒99.1

创建一个以30秒作为第一行时间的时间表。要指定开始时间,请使用“开始时间”名称-值对的论点。

TT =时间表(强度,“步伐”秒(0.01),“开始时间”秒(30))
TT =5×1的时间表时间强度_________ _________ 30秒100 30.01秒98.7 30.02秒95.2 30.03秒101.4 30.04秒99.1

通过指定表的大小和变量的数据类型来预分配表。的时间表函数使用适合于您指定的数据类型的默认值填充变量。它还为变量提供默认名称。

T = [datetime (“现在”datetime(2017、11、1:3)];Sz = [4 3];varTypes = {“双”“双”“字符串”};TT =时间表(“大小”、深圳、“VariableTypes”varTypes,“RowTimes”, T)
TT =4×3的时间表时间Var1 Var2 Var3  ____________________ ____ ____ _________ 2021年- 2月23日14:41:28 0 0 <失踪> 01 - 11月- 2017就是0 0 <失踪> 02 - 11月- 2017就是0 0 <失踪> 03 - 11月- 2017就是0 0 <失踪>

要指定变量的名称,请使用“VariableNames”名称-值对的论点。

varNames = {“温度”“风速”“站”};TT =时间表(“大小”、深圳、“VariableTypes”varTypes,“RowTimes”T“VariableNames”varNames)
TT =4×3的时间表时间温度风速站  ____________________ ___________ _________ _________ 2021年- 2月23日14:41:28 0 0 <失踪> 01 - 11月- 2017就是0 0 <失踪> 02 - 11月- 2017就是0 0 <失踪> 03 - 11月- 2017就是0 0 <失踪>

添加一行数据到TT.当代码一次添加一行或几行数据时,预分配可能是一种有用的技术。您可以填充已经有空间存放数据的表变量,而不是每次添加一行时都增加时间表。您可以在单元格数组中封装一行数据值,并将其分配给时间表的一行。

按时间下标到一行,并分配一行数据值。您还可以通过数字下标到行和变量中。然而,按时间订阅时间表是一种有用的技术。

TT (datetime(2) 2017年11日:)= {48.2,13.33,“S1”
TT =4×3的时间表时间温度风速站  ____________________ ___________ _________ _________ 2021年- 2月23日14:41:28 0 0 <失踪> 01 - 11月- 2017就是0 0 <失踪> 02 - 11月- 2017就是48.2 - 13.33“S1”03 - 11月- 2017就是0 0 <失踪>

可以将数据值行封装在单元格数组中。当您从单元格数组分配一行时,该分配将单元格数组转换为时间表行。

指定1000hz的采样率并预先分配一个时间表。您还可以指定开始时间。

Sz = [4 3];varTypes = {“uint64”“双”“持续时间”};TT =时间表(“大小”、深圳、“VariableTypes”varTypes,“SampleRate”, 1000,“开始时间”秒(15))
TT =4×3的时间表时间Var1 Var2 Var3 __________ ________ ________ 15 sec 00 00:00 15.001 sec 00 00:00 15.002 sec 00 00:00 15.003 sec 00 00:00

索引到第三行,指定其时间,并添加一行数据。

TT(秒(15.002):)={50 1.37分钟(76)}
TT =4×3的时间表时间Var1 Var2 Var3 __________ ________ ________ 15 sec 00 00:00 15.001 sec 00 00:00 15.002 sec 50 1.37 01:16:00 15.003 sec 00 00:00

指定时间步长和变量名称。

Sz = [3 2];varTypes = {“双”“双”};TT =时间表(“大小”、深圳、“VariableTypes”varTypes,“步伐”秒(0.1),“VariableNames”, {“强度”“距离”})
TT =3×2时间表时间强度距离  _______ _________ ________ 0秒0 0 0.1秒0 0 0 0 0.2秒

索引到第二行,指定它的时间,并添加一行数据。

TT(秒(0.1):)= {93.6,11.27}
TT =3×2时间表时间强度距离  _______ _________ ________ 0秒0 0 0.1秒93.6 11.27 0.2秒0 0

创建时间表并指定时间表变量的名称。行乘以向量是a持续时间矢量,单位是秒。

时间=秒(1:5)';TT =时间表(时间,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116),...“VariableNames”, {“Reading1”“Reading2”})
TT =5×2时间表时间Reading1 Reading2 _____ ________ ________ 1秒98 120 2秒97.5 111 3秒97.9 119 4秒98.1 117 5秒97.9 116

从R2019b开始,您可以指定不是有效的MATLAB®标识符的时间表变量名称。这样的变量名可以包括空格、非ascii字符,并且可以使用任何字符作为前导字符。

例如,使用日期作为包含读数的时间表变量的名称。

TT =时间表(时间,[98;97.5;97.9;98.1;97.9],[120;111;119;117;116),...“VariableNames”, {29日- 2019年5月,““30 - 2019年5月- - - - - -”})
TT =5×2时间表时间2019年5月29日-2019年5月30日-2019年_____ ___________ ___________ 1秒98 120 2秒97.5 111 3秒97.9 119 4秒98.1 117 5秒97.9 116

若要在名称不是有效标识符时使用点符号,请包含圆括号和引号。

TT。(29日- 2019年5月,“
ans =5×198.0000 97.5000 97.9000 98.1000 97.9000

限制

  • 对这些输入名称使用单引号:

    • “DimensionNames”(因为R2021a)

    • “RowTimes”

    • “SampleRate”

    • “大小”

    • “开始时间”

    • “步伐”

    • “VariableTypes”

    • “VariableNames”

    为避免与变量输入混淆,不要使用双引号字符串标量(例如“RowTimes”)。

提示

  • 有关接受或返回时间表的函数列表,请参见时间表

  • 在某些情况下,你可以打电话时间表使用指定行时间间隔的常规时间步长的语法时间表返回一个不规则的时间表。当您使用日历时间单位指定时间步长,并且存在引入不规则步骤的行时间时,就会出现此结果。例如,如果您创建的时间表的时间步长为一个日历月,从2019年1月31日开始,那么它与月份的关系是不规则的。

    少许= datetime (2019, 31);tstep = calmonths (1);TT =时间表(“大小”(3 - 1),“VariableTypes”, {“双”},...“步伐”tstep,“开始时间”少许)
    TT = 3×1时间表时间Var1 ___________ ____ 31- 1- 2019 0 28- 2 -2019 0 31- 3 -2019 0

    在其他情况下,由于从夏令时(DST)转换到闰秒的行时间,也会出现异常。该表指定可能意外生成不规则时间表的行时间值和时间步骤。

    行时间价值

    时间步长

    开始时间指定为每月的29日、30日或31日。

    日历月或季度的数目。

    开始时间指定为2月29日。

    历年数。

    在从夏令时转换为标准时间的一天中,发生在凌晨1点到凌晨2点之间的任何行时间(当行时间指定为datetime时区为夏令时的值)。 日历上的天数或月份。

    任何一个闰秒的行时间(当行时间被指定为datetime时区为UTCLeapSeconds时区)。有关闰秒的列表,请参见leapseconds

    在任何日历单位(天、周、月、季度或年)中指定的时间步长。

兼容性的考虑

全部展开

行为在R2019b中改变

从R2021a开始警告

扩展功能

介绍了R2016b