主要内容

时间表

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

描述

时间表将时间与每行关联的表类型。与表一样,时间表存储面向列的数据变量,这些变量可以具有不同的数据类型和大小,只要它们具有相同的行数。此外,时间表还提供了特定于时间的函数,以便对一个或多个时间表中的时间戳数据进行对齐、组合和计算。

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

创建

方法将数据从文件读入表中,以创建时间表readtimetable函数,也可以转换具有其他数据类型的变量。

转换:

金宝app®用户可以从金宝appSimulink.SimulationData.Dataset对象,使用extractTimetable(金宝app模型)函数。

或者,您可以使用时间表函数描述如下。根据输入数组创建时间表,或为稍后填充的变量预分配空间。要指定行时间,可以使用行时间的输入向量,也可以使用采样率或时间步长创建行时间。

描述

组合现有变量

例子

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

例子

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

例子

时间表(var1,…,varN“SampleRate”,Fs使用抽样率Fs计算有规律间隔的行时间。Fs是一个正的数字标量,指定每秒采样的数量(Hz)。第一行时间是0秒。

例子

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

Preallocate空间

例子

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

例子

TT =时间表('Size',深圳“VariableTypes”,varTypes“SampleRate”,Fs使用数据类型预分配变量,并使用采样率添加行时间Fs.第一行时间是0秒。

例子

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

设置“名称”或“开始时间”

例子

时间表(___名称,值使用一个或多个名-值对参数指定其他输入参数。方法指定变量名“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,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

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

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

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

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

  • 时间表函数中也存储变量名VariableNames时间表的属性。

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

自从R2021a

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

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

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

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

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

你可以指定“开始时间”仅当您还指定“SampleRate”“步伐”名称-值对参数。

  • 如果开始时间为adatetime的行次数TTdatetime值。

  • 如果开始时间为a持续时间值,那么行时间就是持续时间。

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

属性

全部展开

访问时间表元数据属性

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

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

方法提供元数据访问属性属性,因为可以直接使用点语法访问时间表数据。例如,如果时间表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 datetime2015年12月19日2015年12月20日

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

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

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

TT.Properties.DimensionNames = {“日期”“WeatherData”};TT。属性
ans = timeableproperties with properties: Description: " UserData: [] DimensionNames: {'Date' 'WeatherData'} VariableNames: {'Var1' 'Var2' 'Var3'} variabledescription: {} VariableUnits: {} variableccontinuity: [] RowTimes: [3x1 datetime] StartTime: 18- 12 -2015 SampleRate: NaN TimeStep: 1d 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:时间:3x1 datetime值:Min 18- December -2015中位数19- December -2015 Max 20- December 2015 TimeStep 24:00:00变量:Temp: 3x1 double值:Min 37.3中位数39.1 Max 42.3压力:3x1 double值:Min 29.9中位数30.03 Max 30.1风速:3x1 double值: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 =华氏度2摄氏度;TT。属性
ans = timeableproperties with properties: Description: " UserData: @(x)(5.0/9.0).*(x-32) DimensionNames: {'Time' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} variabledescription: {} VariableUnits: {} variableccontinucontinuations: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: 1d CustomProperties:无自定义属性设置。使用addprop和rmprop修改CustomProperties。

行次数元数据

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

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

  • 时间表可以有重复的、无序的行时间,或者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.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 datetime2017年1月1日-2017年1月3日-2017年1月3日

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

  • 如果开始时间为adatetime的行次数TTdatetime值。

  • 如果开始时间为a持续时间值,那么行时间就是持续时间。

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

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

例子

制定时间表。在这个时间表中,连续行之间的时间步长是不一样的,所以时间表是不规则的。

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 = timeableproperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} variabledescription: {} VariableUnits: {} variableccontinucontinuations: [] RowTimes: [3x1 datetime] StartTime: 18- 12 -2015 SampleRate: NaN TimeStep: NaN CustomProperties:无自定义属性设置。使用addprop和rmprop修改CustomProperties。

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

TT.Properties.StartTime =日期时间(“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标量。

  • 如果指定时间步长为calendarDuration值(例如,日历月份),则行时间的向量必须为adatetime向量。

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

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

例子

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

强度= [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 = timeableproperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Intensity'} variabledescription: {} VariableUnits: {} variableccontinuency: [] RowTimes: [5x1 duration] StartTime: 0秒SampleRate: 100 TimeStep: 0.01秒CustomProperties:无自定义属性设置。使用addprop和rmprop修改CustomProperties。

修改步伐财产。开始时间是相同的,但所有其他行时间是不同的,因为时间步长更大。然而,变量强度保持不变。

TT.Properties.TimeStep = seconds(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 .压力(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 . variabledescription = {的温度(外部)...“以汞为单位的压力”...“传感器123的风速”};总结(TT)
RowTimes: Time: 3x1 datetime值:Min 18-Dec-2015 Median 19-Dec-2015 Max 20- dec 2015 TimeStep 24:00:00变量:Temp: 3x1 double属性:描述:Temperature (external)值:Min 37.3 Median 39.1 Max 42.3 Pressure: 3x1 double属性:描述:Pressure in Hg值:Min 29.9 Median 30.03 Max 30.1 WindSpeed: 3x1 double属性:描述:风速在传感器123值:Min 6.5 Median 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 = {“临时”“压力”“风速”};TT.Properties.VariableUnits = {“度”毫米汞柱的“英里”};总结(TT)
RowTimes: Time: 3x1 datetime值:Min 18-Dec-2015 Median 19-Dec-2015 Max 20- dec 2015 TimeStep 24:00:00变量:Temp: 3x1 double属性:单位:degrees F值:Min 37.3 Median 39.1 Max 42.3压力:3x1 double属性:单位:mm Hg值:Min 29.9 Median 30.03 Max 30.1 WindSpeed: 3x1 double属性:单位:mph值:Min 6.5 Median 7.3 Max 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 . variableccontinuity = {“连续”“事件”“事件”};TT。属性
ans = timeableproperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} variabledescription: {} VariableUnits: {} variableccontinucontinuations:[连续事件事件]RowTimes: [3x1 datetime] StartTime: 18- 12 -2015 SampleRate: NaN TimeStep: 1d CustomProperties:无自定义属性设置。使用addprop和rmprop修改CustomProperties。

自定义元数据

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

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

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

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

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

注意:您可以添加或删除只有属性用于使用自定义元数据addprop而且rmprop.属性的属性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 = timeableproperties with properties: Description: " UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} variabledescription: {} VariableUnits: {} variableccontinucontinuations: [] RowTimes: [3x1 datetime] StartTime: 18- 12 -2015 SampleRate: NaN TimeStep: NaN自定义属性(使用t.Properties.CustomProperties.): OutputFile: [] Instruments: []

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

TT.Properties.CustomProperties.Instruments = [“温度计”“风速计”“风向标”];TT.Properties.CustomProperties.OutputFile =“weatherReadings.csv”;TT。属性
ans = timeableproperties带属性:描述:" UserData: [] DimensionNames: {'Time' 'Variables'} VariableNames: {'Temperature' 'WindSpeed' 'WindDirection'} variabledescription: {} VariableUnits: {} variableccontinucontinuations: [] RowTimes: [3x1 datetime] StartTime: 18-Dec-2015 SampleRate: NaN TimeStep: NaN自定义属性(访问使用t.Properties.CustomProperties.): OutputFile: ' weatherings .csv'仪器:["温度计" "风速计" "风向标"]

删除OutputFile的财产TT

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

例子

全部折叠

在时间表中存储有关在不同时间测量的天气状况的数据。除了存储之外,时间表还提供了将数据与指定的时间同步的功能。此外,您可以注释时间表,以描述您的工作和时间表的变量。

根据工作空间变量创建时间表。中的值MeasurementTime成为时间表的排次。所有其他输入参数都成为时间表变量。使用此语法时,行的名称乘以向量和的变量TT是对应的输入参数的名称。

测量时间=日期时间({“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的时间表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 = retime(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。属性
ans = timeableproperties with properties: Description: '天气数据,插值到规则的每小时时间' UserData: [] DimensionNames: {'InterpolatedTimes' 'Variables'} VariableNames: {'Temp' 'Pressure' 'WindSpeed'} variabledescription: {} VariableUnits: {} variableccontinucontinuations: [] 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

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

outdoors.Time (1:3)
ans =3 x1 datetime2015-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.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.6100 49.1000 51.5000 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.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.6100 49.1000 51.5000 29.6100 49.1000 51.5000 29.6100

方法创建时间表“RowTimes”名称-值对参数。注意行名乘以向量TT时间,而不是MeasurementTime.使用此语法时,行乘以向量的名称总是时间

测量时间=日期时间({“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];precp = [0.1;0.9;0.0];StormDuration = [hours(1);hours(2);NaN];TT =时间表(温度,压力,精确,风暴持续时间,“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南人力资源

制定时间表。如果输入参数不是工作空间变量,则时间表函数将默认名称分配给相应的行时间向量和时间表变量。例如,如果您将一些输入参数转置为列向量,那么这些输入参数就不是工作空间变量。默认名称为时间对于行乘以的向量,和VarNN时间表变量。

T =小时(1:3);Temp = [37.3;39.1;42.3];P = [29.4 29.6 30];TT =时间表(T',Temp,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 = {“双”“双”“字符串”};时间表(“大小”、深圳、“VariableTypes”varTypes,“RowTimes”, T)
TT =4×3的时间表时间Var1 Var2 Var3  ____________________ ____ ____ _________ 26日- 11月- 2022 06:58:42 0 0 <失踪> 01 - 11月- 2017就是0 0 <失踪> 02 - 11月- 2017就是0 0 <失踪> 03 - 11月- 2017就是0 0 <失踪>

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

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

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

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

TT(datetime(2017,11,2),:) = {48.2,13.33,“S1”
TT =4×3的时间表时间温度风速站  ____________________ ___________ _________ _________ 26日- 11月- 2022 06:58:42 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”“双”“持续时间”};时间表(“大小”、深圳、“VariableTypes”varTypes,“SampleRate”, 1000,“开始时间”秒(15))
TT =4×3的时间表Time Var1 Var2 Var3 __________ ________ ________ 15 sec 00 00:00:00 15.001 sec 00 00:00:00 15.002 sec 00 00:00:00 15.003 sec 00 00:00:00

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

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

指定一个时间步长和变量名。

Sz = [3 2];varTypes = {“双”“双”};时间表(“大小”、深圳、“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时间表时间读数1读数2 _____ ________ ________ 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时间表时间29- may 2019 30- may 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日开始,那么就月份而言,它是不规则的。

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

    在其他情况下,不规则是由于日光节约时间(DST)或到datetime闰秒值。该表指定可能意外产生不规则结果的日期、时间和时间步骤。

    行时间值

    时间步长

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

    月数:日历月或季度数

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

    日历年数。

    任何datetime发生在从夏令时到标准时间的一天的凌晨1点到凌晨2点之间的值(当这些值具有遵守夏令时的时区时)。 日:日历日或月的数目

    任何datetime值,该值为闰秒(当此类值的时区为UTCLeapSeconds时区)。有关闰秒的列表,请参见leapseconds

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

扩展功能

版本历史

在R2016b中引入

全部展开