Main Content

array2timetable

将同构数组转换为时间表

说明

示例

TT = array2timetable(X,'RowTimes',rowTimes)XrowTimes 转换为时间表。X 是一个 M×N 数组,rowTimes 是日期时间或持续时间值的 M×1 向量。X 的每一列都变成 TT 的一个变量。rowTimes 中的时间值会为时间表的各行添加标签。TT 是一个 M×N 时间表。

有关创建和使用时间表的详细信息,请参阅时间表

示例

TT = array2timetable(X,'SampleRate',Fs) 使用采样率 Fs 计算固定间隔的行时间。Fs 是一个正数值标量,用于指定每秒采样数 (Hz)。第一个行时间是零秒。

示例

TT = array2timetable(X,'TimeStep',dt) 使用时间步 dt 计算固定间隔的行时间。dt 是一个持续时间或日历持续时间值,用于指定连续行时间之间的时间长度。第一个行时间是零秒。

示例

TT = array2timetable(___,'StartTime',t0) 指定开始时间 t0(而不是零秒)作为第一个行时间。当您使用上面两个语法中的 'SampleRate''TimeStep' 名称-值对组参数创建规则时间表时,可以使用此语法。

示例

T = array2timetable(X,Name,Value) 从数组 X 创建一个时间表,附加选项由一个或多个 Name,Value 对组参数指定。

例如,您可以指定要包含在时间表中的变量名称。

示例

全部折叠

将数组转换为时间表。将持续时间向量作为行时间添加。

X = rand(5,3);
Time = seconds(1:5);
TT = array2timetable(X,'RowTimes',Time)
TT=5×3 timetable
    Time       X1         X2         X3   
    _____    _______    _______    _______

    1 sec    0.81472    0.09754    0.15761
    2 sec    0.90579     0.2785    0.97059
    3 sec    0.12699    0.54688    0.95717
    4 sec    0.91338    0.95751    0.48538
    5 sec    0.63236    0.96489    0.80028

返回时间表的大小。TT 包含五个行和三个变量。行时间集是一个表属性。行时间不包含在表变量中。

size(TT)
ans = 1×2

     5     3

将采样率指定为 500 Hz,并将数组转换为时间表。

X = rand(5,3);
TT = array2timetable(X,'SampleRate',500)
TT=5×3 timetable
      Time         X1         X2         X3   
    _________    _______    _______    _______

    0 sec        0.81472    0.09754    0.15761
    0.002 sec    0.90579     0.2785    0.97059
    0.004 sec    0.12699    0.54688    0.95717
    0.006 sec    0.91338    0.95751    0.48538
    0.008 sec    0.63236    0.96489    0.80028

将时间步指定为 0.5 秒,并将数组转换为时间表。

X = rand(5,3);
TT = array2timetable(X,'TimeStep',seconds(0.5))
TT=5×3 timetable
     Time        X1         X2         X3   
    _______    _______    _______    _______

    0 sec      0.81472    0.09754    0.15761
    0.5 sec    0.90579     0.2785    0.97059
    1 sec      0.12699    0.54688    0.95717
    1.5 sec    0.91338    0.95751    0.48538
    2 sec      0.63236    0.96489    0.80028

将时间步指定为 15 秒,将开始时间指定为 5 分钟。

X = rand(5,3);
TT = array2timetable(X,'TimeStep',seconds(15),'StartTime',minutes(5))
TT=5×3 timetable
      Time        X1         X2         X3   
    ________    _______    _______    _______

    5 min       0.81472    0.09754    0.15761
    5.25 min    0.90579     0.2785    0.97059
    5.5 min     0.12699    0.54688    0.95717
    5.75 min    0.91338    0.95751    0.48538
    6 min       0.63236    0.96489    0.80028

将数组转换为时间表。将行时间指定为日期时间向量。指定时间表变量的名称。

X = randi([70 90],5,3);
Time = datetime(2016,7,1:5);
varNames = {'Temp1','Temp2','Temp3'};
TT = array2timetable(X,'RowTimes',Time,'VariableNames',varNames)
TT=5×3 timetable
       Time        Temp1    Temp2    Temp3
    ___________    _____    _____    _____

    01-Jul-2016     87       72       73  
    02-Jul-2016     89       75       90  
    03-Jul-2016     72       81       90  
    04-Jul-2016     89       90       80  
    05-Jul-2016     83       90       86  

输入参数

全部折叠

输入矩阵。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration | calendarDuration
复数支持:

与时间表的行相关联的时间,指定为日期时间向量或持续时间向量。每个时间可以标记输出时间表中的一行。rowTimes 中的时间值不需要唯一、排序或有规律。

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

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

数据类型: datetime | duration | calendarDuration

开始时间,指定为日期时间标量或持续时间标量。

  • 如果 t0 是日期时间值,则 TT 的行时间是日期时间值。

  • 如果 t0 是持续时间,则行时间是持续时间。

如果时间步 dt 是日历持续时间值,则 t0 必须是日期时间值。

数据类型: datetime | duration

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: TT = array2timetable(X,'RowTimes',Time,'VariableNames',{'Latitude','Longitude'}) 根据输入数组 X 创建时间表,行时间由 Time 指定,并命名对应的时间表变量 LatitudeLongitude

T 的变量名称,指定为以逗号分隔的对组,其中包含 'VariableNames' 和一个由非空的不同元素构成的字符向量元胞数组或字符串数组。名称的数量必须等于变量数 size(A,2)

变量名称可以包含任何 Unicode® 字符,包括空格和非 ASCII 字符。

自 R2021a 开始提供

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

维度名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。

在 R2021a 之前,只能通过设置输出的 DimensionNames 属性来指定维度名称。

输出参数

全部折叠

输出时间表。该时间表可以存储元数据,例如描述、变量单位、变量名称和行时间。有关详细信息,请参阅 timetable 的“属性”部分。

提示

  • 在某些情况下,您可以使用指定行时间之间的规则时间步的语法来调用 array2timetable,而 array2timetable 返回不规则时间表。当您使用日历时间单位指定时间步并且存在引入不规则时间步的行时间时,就会出现这种结果。例如,如果您创建时间步为一个日历月的时间表,从 2019 年 1 月 31 日开始,则基于月份,时间步是不规则的。

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    X = [1:3]';
    TT = array2timetable(X,'TimeStep',tstep,'StartTime',stime)
    
    TT =
    
      3×1 timetable
    
           Time        X
        ___________    _
    
        31-Jan-2019    1
        28-Feb-2019    2
        31-Mar-2019    3
    

    夏令时 (DST) 的转换或闰秒的 datetime 值也会造成不规则性。下表指定可能意外产生不规则结果的日期、时间和时间步。

    行时间值

    时间步

    开始时间,指定为一个月的第 29 天、第 30 天或第 31 天。

    日历月数或季度数。

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

    日历年数。

    在从 DST 转换到标准时间的一天中凌晨 1:00 到 2:00 之间发生的任何 datetime 值(当这些值的时区遵守 DST 时)。日历天数或月数。

    闰秒的任何 datetime 值(当这些值的时区是 UTCLeapSeconds 时区时)。有关闰秒的列表,请参阅 leapseconds

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

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2016b 中推出

全部展开