exponenta event banner

table2timetable

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

Описание

пример

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

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

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

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

Чтобы создать расписание из данных в текстовом файле или файле электронной таблицы, сначала используйте 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 или вектор duration. Количество элементов 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 утра в день, переходящий с летнего времени на стандартное время (когда время строки указано как datetime значения, в часовом поясе которых соблюдается переход на летнее и зимнее время).Количество календарных дней или месяцев.

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

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

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

развернуть все

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

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

.
Представлен в R2016b