table2timetable

Преобразуйте таблицу в расписание

Описание

пример

TT = table2timetable(T) преобразует таблицу T в расписание. Первая переменная datetime или длительность в T становится вектором времени строк TT. Остальные переменные T стать переменными TT.

  • Если T является M-by- N таблица без имен строк, затем TT является M-by- (N-1) timetable.

  • Если T является M-by- N таблица с именами строк, затем table2timetable присваивает имена строк T в переменную TT. В результате TT является M-by- N timetable.

Дополнительные сведения о создании и использовании расписаний см. в разделе Расписания.

Чтобы создать расписание из данных в тексте или файле электронной таблицы, сначала используйте readtable функция для чтения данных в таблицу. Затем преобразуйте таблицу в расписание с table2timetable.

пример

TT = table2timetable(T,'RowTimes',timeVarName) назначает табличную переменную timeVarName как вектор времени строки выходного расписания. timeVarName может быть именем любой переменной в T который содержит значения datetime или duration. Остальные переменные T стать переменными TT.

пример

TT = table2timetable(T,'RowTimes',rowTimes) присваивает вектор rowTimes как вектор времени строки выходного расписания. Все переменные T стать переменными TT.

пример

TT = table2timetable(T,'SampleRate',Fs) использует частоту дискретизации Fs для вычисления регулярно разнесенных значений времени по строкам. Fs является положительным числовым скаляром, который задает количество выборок в секунду (Гц). Время первой строки равняется нулю секунд.

пример

TT = table2timetable(T,'TimeStep',dt) использует временной шаг dt для вычисления регулярно разнесенных значений времени по строкам. dt - длительность или значение календарной длительности, задающее промежуток времени между последовательными временами строк. Время первой строки равняется нулю секунд.

пример

TT = table2timetable(___,'StartTime',t0) задает время запуска t0, вместо нуля секунд, как время первой строки. Можно использовать этот синтаксис, когда вы создаете регулярное расписание с помощью 'SampleRate' или 'TimeStep' аргументы пары "имя-значение" из любого из двух предыдущих синтаксисов.

Примеры

свернуть все

Преобразуйте таблицу, содержащую даты и времена, в расписание.

Считайте данные об отключении степени из файла outages.csv в таблицу. Таблица содержит как время отключения, так и время восстановления.

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region           OutageTime        Loss     Customers     RestorationTime            Cause       
    _____________    ________________    ______    __________    ________________    ___________________

    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05                 NaT    {'winter storm'   }
    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    {'West'     }    2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    {'MidWest'  }    2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

Преобразуйте таблицу в расписание. Первая переменная со временем, OutageTime, становится временным вектором TT.

TT = table2timetable(T);
TT(1:5,:)
ans=5×5 timetable
       OutageTime          Region         Loss     Customers     RestorationTime            Cause       
    ________________    _____________    ______    __________    ________________    ___________________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

Индексируйте в TT использование времени строки из ее временного вектора. Можно обрабатывать строки как метки, которые задают строки.

TT('2003-02-07 21:15',:)
ans=1×5 timetable
       OutageTime          Region        Loss     Customers     RestorationTime          Cause      
    ________________    _____________    _____    __________    ________________    ________________

    2003-02-07 21:15    {'SouthEast'}    289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'}

Рассчитать длительность отключения степени. Используйте синтаксис точки, чтобы извлечь время строки в виде вектора.

TT.OutageDuration = TT.RestorationTime - TT.OutageTime;
TT(1:5,:)
ans=5×6 timetable
       OutageTime          Region         Loss     Customers     RestorationTime            Cause           OutageDuration
    ________________    _____________    ______    __________    ________________    ___________________    ______________

    2002-02-01 12:18    {'SouthWest'}    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }      148:32:00   
    2003-01-23 00:49    {'SouthEast'}    530.14    2.1204e+05                 NaT    {'winter storm'   }            NaN   
    2003-02-07 21:15    {'SouthEast'}     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }      226:59:00   
    2004-04-06 05:44    {'West'     }    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}       00:26:00   
    2002-03-16 06:18    {'MidWest'  }    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }       65:05:00   

Преобразуйте таблицу в расписание и задайте табличную переменную, которая становится временным вектором расписания.

Считайте данные об отключении степени из файла outages.csv в таблицу. Таблица содержит как время отключения, так и время восстановления.

T = readtable('outages.csv');
T(1:5,:)
ans=5×6 table
       Region           OutageTime        Loss     Customers     RestorationTime            Cause       
    _____________    ________________    ______    __________    ________________    ___________________

    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }
    {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05                 NaT    {'winter storm'   }
    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }
    {'West'     }    2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}
    {'MidWest'  }    2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

Преобразуйте таблицу в расписание. Задайте вторую переменную с датами и временами, RestorationTime, как временной вектор расписания.

TT = table2timetable(T,'RowTimes','RestorationTime');
TT(1:5,:)
ans=5×5 timetable
    RestorationTime        Region           OutageTime        Loss     Customers            Cause       
    ________________    _____________    ________________    ______    __________    ___________________

    2002-02-07 16:50    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    {'winter storm'   }
    NaT                 {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05    {'winter storm'   }
    2003-02-17 08:14    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    {'winter storm'   }
    2004-04-06 06:10    {'West'     }    2004-04-06 05:44    434.81    3.4037e+05    {'equipment fault'}
    2002-03-18 23:23    {'MidWest'  }    2002-03-16 06:18    186.44    2.1275e+05    {'severe storm'   }

Преобразуйте таблицу в расписание путем добавления отдельного временного вектора, который содержит время строки. Все табличные переменные становятся переменными расписания.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Time = [seconds(1):seconds(1):seconds(5)];
TT = table2timetable(T,'RowTimes',Time)
TT=5×2 timetable
    Time     Reading1    Reading2
    _____    ________    ________

    1 sec        98        120   
    2 sec      97.5        111   
    3 sec      97.9        119   
    4 sec      98.1        117   
    5 sec      97.9        116   

Составьте таблицу.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Задайте частоту дискретизации 500 Гц. Преобразование T в расписание, использующее эту частоту дискретизации и начальное время строки с нулем секунд.

TT = table2timetable(T,'SampleRate',500)
TT=5×2 timetable
      Time       Reading1    Reading2
    _________    ________    ________

    0 sec            98        120   
    0.002 sec      97.5        111   
    0.004 sec      97.9        119   
    0.006 sec      98.1        117   
    0.008 sec      97.9        116   

Составьте таблицу.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Задайте временной шаг десять секунд, используя seconds функция. Преобразование T в расписание, использующее эту частоту дискретизации и начальное время строки, равное нулю секунд.

TT = table2timetable(T,'TimeStep',seconds(10))
TT=5×2 timetable
      Time      Reading1    Reading2
    ________    ________    ________

    00:00:00        98        120   
    00:00:10      97.5        111   
    00:00:20      97.9        119   
    00:00:30      98.1        117   
    00:00:40      97.9        116   

Составьте таблицу.

Reading1 = [98;97.5;97.9;98.1;97.9];
Reading2 = [120;111;119;117;116];
T = table(Reading1,Reading2)
T=5×2 table
    Reading1    Reading2
    ________    ________

        98        120   
      97.5        111   
      97.9        119   
      98.1        117   
      97.9        116   

Преобразуйте его в расписание путем задания временного шага в десять секунд и времени запуска в 5 секунд.

dt = seconds(10);
t0 = seconds(5);
TT = table2timetable(T,'TimeStep',dt,'StartTime',t0)
TT=5×2 timetable
     Time     Reading1    Reading2
    ______    ________    ________

    5 sec         98        120   
    15 sec      97.5        111   
    25 sec      97.9        119   
    35 sec      98.1        117   
    45 sec      97.9        116   

Входные параметры

свернуть все

Входная таблица.

Имя переменной из таблицы входа, заданное как вектор символов или строковый скаляр.

Значение времени строки, присвоенное выходному расписанию, задается как вектор datetime или вектор длительности. Количество элементов rowTimes должно равняться количеству строк в вход таблице. Значения времени в rowTimes не должны быть уникальными, сортированными или регулярными.

Частота дискретизации, заданная как положительный числовой скаляр. Fs задает количество выборок в секунду (Гц).

Временной шаг, заданный как скаляр datetime или скаляр длительности.

Типы данных: datetime | duration | calendarDuration

Время запуска, заданное как скаляр datetime или скаляр длительности.

  • Если t0 является значением datetime, затем время строки TT являются значениями datetime.

  • Если t0 является длительностью, тогда время в строке является длительностью.

Если временной шаг dt является календарным значением длительности, затем t0 должно быть значением datetime.

Типы данных: datetime | duration

Выходные аргументы

свернуть все

Выходное расписание. В расписании могут храниться такие метаданные, как описания, переменные модули, имена переменных и время ввода строк. Для получения дополнительной информации смотрите разделы « Свойств» timetable.

Совет

  • В некоторых случаях можно вызвать функцию table2timetable с синтаксисом, который задает регулярный временной шаг между временами строк и table2timetable возвращает неправильное расписание. Этот результат возникает, когда вы задаете временной шаг с помощью календарного модуля времени и существует строка времени, которая вводит неправильный шаг. Например, если вы создаете расписание с временным шагом в один календарный месяц, начиная с 31 января 2019 года, то оно нерегулярно относительно месяцев.

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    T = table([1:3]');
    TT = table2timetable(T,'TimeStep',tstep,'StartTime',stime)
    
    TT =
    
      3×1 timetable
    
           Time        Var1
        ___________    ____
    
        31-Jan-2019     1  
        28-Feb-2019     2  
        31-Mar-2019     3  
    
    

    Существуют и другие случаи, когда нарушения связаны со сдвигами времени сохранения на летнее время (DST) или временами строк, которые являются високосными секундами. Эта таблица задает значения времени строк и временные шаги, которые могут неожиданно создать неправильные расписания.

    Значение времени строки

    Временной шаг

    Время начала, заданное как 29, 30 или 31 день месяца.

    Количество календарных месяцев или кварталов.

    Время запуска указано как 29 февраля.

    Количество календарных лет.

    Любое время строки между 1:00 и 2:00 в день перехода от DST к стандартному времени (когда время строки задано как datetime значения, чей часовой пояс наблюдает DST).Количество календарных дней или месяцев.

    Любое время строки, которое является скачком секунды (когда время строки задано как datetime значения, чей часовой пояс является UTCLeapSeconds часовой пояс). Список високосных секунд см. в разделе leapseconds.

    Временной шаг, заданный в любом календарном модуле (дни, недели, месяцы, кварталы или годы).

Вопросы совместимости

расширить все

Предупреждает, начиная с R2021a

Расширенные возможности

.
Введенный в R2016b