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' 名称-值对组参数创建规则时间表时,可以使用此语法。

示例

TT = array2timetable(___,'VariableNames',varNames) 指定输出时间表中的变量名称。您可以将此语法与前面语法中的任何输入参数结合使用。

示例

全部折叠

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

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

输出时间表中的变量名称,指定为字符向量元胞数组或字符串数组。varNames 中的名称数量必须等于变量数量。

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

输出参数

全部折叠

输出时间表。该时间表可以存储元数据,例如说明、变量单位、变量名称和行时间。有关详细信息,请参阅 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) 的转换或闰秒的行时间也会造成不规则性。下表指定了可能意外产生不规则时间表的行时间值和时间步。

    行时间值

    时间步

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

    日历月数或季度数。

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

    日历年数。

    在从 DST 转换到标准时间的一天中凌晨 1:00 到 2:00 之间发生的行时间(当行时间指定为其时区遵守 DST 的日期时间值时)。日历天数或月数。

    闰秒行时间(当行时间指定为其时区为 UTCLeapSeconds 时区的日期时间值时)。有关闰秒的列表,请参阅 leapseconds

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

兼容性考虑

全部展开

R2019b 中的行为有变化

从 R2018b 起不建议使用

扩展功能

在 R2016b 中推出