主要内容

时间表

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

描述

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

行时间一个时间表是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.此外,该阵列必须实现一个vertcat方法和大小方法用暗淡论点。

与时间表行相关的时间,指定为adatetime向量或期间向量。每个时间标记输出时间表中的一行,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-by-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

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

TT.Properties.DimensionNames = {“日期”“WeatherData”};TT.Properties
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.Properties
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,1:3);tt.properties.rowtiimes =日期
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-Jan-2017 02-Jan-2017 03-Jan-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 = {“温度”“风速”'风向'
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.Properties
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.Properties
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 = {“温度”“风速”'风向'};TT.Properties.VariableContinuity = {“连续”“事件”“事件”};TT.Properties
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 = {“温度”“风速”'风向'
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.的输出文件属性具有表元数据。

TT = addprop (TT, {“工具”“OutputFile”},{“变量”“表”});TT.Properties
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.Properties
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:["温度计" "风速表" "风向标"]

删除输出文件的财产TT

TT = rmprop (TT,“OutputFile”);TT.Properties
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:南Custom Properties (access using t.Properties.CustomProperties.): Instruments: ["thermometer" "anemometer" "wind vane"]

例子

全部收缩

大约在不同时期的时间表测量的天气条件下存储数据。除了存储,时间表,以时间您指定提供功能同步数据。此外,您可以注释的时间表来描述你的工作和时间表的变量。

从工作区变量创建一个时间表。中的值测量时间成为时间表的行倍。所有其他的输入参数成为时间表变量。当您使用此语法,行次矢量的名称和变量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 =时间表(测量时间,临时,压力,风速)
TT =3×3的时间表测量时间临时压力风速_______________________________________18-dec-2015 08:03:05 37.3 30.1 13.4 18-DEC-2015 10:03:17 39.1 30.03 6.5 18-DEC-2015 12:03:13 42.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 Currence Windspeed ___________________________________________________________________18-DEC-2015 08:00:00 13.577 18-DEC-2015 09:00:00 38.152 30.067 10.133 18-DEC-2015 10:00:00 39.051 30.032 69.051 30.032 69.051 30.032 6.6885 18-DE-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。

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

从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 48.9000 51.5000 29.6100 48.7000 51.5000 29.6100 48.6000 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 48.9000 51.5000 29.6100 48.7000 51.5000 29.6100 48.6000 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 = 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南人力资源

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

T =小时(1:3);Temp = (37.3; 39.1; 42.3);P = [29.4 29.6 30];tt =时间表(t',temp,p')
TT =3×2时间表时间温度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的时间表Time var1 var2 var3 _____________________________________ 23-Feb-2021 14:41:28 0 0 <缺失> 01-110-2017 00:00:00 0 <缺失> 02-110-2017 00:00:00 0 0<缺失> 03-NOV-2017 00:00:00 0 0 <缺失>

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

varNames = {“温度”“风速”“站”};TT =时间表(“大小”、深圳、“VariableTypes”varTypes,'RowTimes'T“VariableNames”,varnames)
TT =4×3的时间表时间温度风速站____________________ ___________ _________ _________ 23-FEB-2021十四时41分28秒0 0 <缺失> 01-NOV-2017 00:00:00 0 0 <缺失> 02-NOV-2017 00:00:00 0 0<缺失> 03-NOV-2017 00:00:00 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的时间表time var1 var2 var3 __________ _____________ 15秒0 0 00:00:00 15.001秒0 0 00:00:00 15.002秒50 1.37 01:16:00 15.003秒0 0 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