isregular

Определите, является ли расписание регулярным относительно времени или календарного модуля

Описание

пример

tf = isregular(TT,timeComponent) возвращает 1 (true) если timetable TT является регулярным по отношению к указанному времени или календарному модулю. В противном случае возвращается 0 (false). Расписание регулярно, если его строки увеличиваются или уменьшаются монотонно к тому же временному шагу.

  • Если задано время строки TT являются datetime значения, тогда временные шаги между ними могут быть регулярными относительно календарного модуля, такой как месяцы, но нерегулярными относительно точного истекшего времени. Задайте время или модуль календаря при помощи timeComponent входной параметр.

    Например, если значения времени строк являются регулярными ежемесячными datetime значения и timeComponent является 'month', затем isregular возвращает 1. Но если timeComponent является 'time', затем isregular возвращает 0 потому что различные месяцы могут представлять различные промежутки времени.

  • Если время строки duration Значения затем задайте timeComponent как 'time' или используйте следующий синтаксис. The duration тип данных не представляет время с использованием календарных модулей.

пример

tf = isregular(TT) эквивалентно isregular(TT,'time').

пример

[tf,dt] = isregular(___) возвращает dt, временной шаг между временами строк. Если TT является обычным, тогда dt является либо duration значение или calendarDuration значение. Если TT не является регулярным, тогда dt является NaN значение.

Примеры

свернуть все

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

Составьте расписание, число строк которого составляет первые пять месяцев в году 2016. Добавьте месячную цену запаса как табличную переменную.

StockPrice = [109.0;107.82;113.17;128.01;116];
M = timetable(datetime(2016,1:5,3)',StockPrice)
M=5×1 timetable
       Time        StockPrice
    ___________    __________

    03-Jan-2016         109  
    03-Feb-2016      107.82  
    03-Mar-2016      113.17  
    03-Apr-2016      128.01  
    03-May-2016         116  

Определите, M является регулярным расписанием.

TF = isregular(M)
TF = logical
   0

M не является обычным, потому что первые пять месяцев имеют разное количество дней. Можно использовать diff функция для вычисления различий во временных шагах между последовательными временами в M. Различиями являются длительности, форматированные для отображения временных шагов в виде часов, минут и секунд.

D = diff(M.Time)
D = 4x1 duration
   744:00:00
   696:00:00
   744:00:00
   720:00:00

Определите, M является регулярным по отношению к месяцам путем определения 'month' как модуль измерения.

TF = isregular(M,'months')
TF = logical
   1

Составьте расписание. Определите, является ли он обычным, и затем верните размер временного шага, если он есть.

Time = [minutes(0):minutes(15):minutes(60)]';
Pulse = [72 75 80 73 69]';
TT = timetable(Time,Pulse)
TT=5×1 timetable
     Time     Pulse
    ______    _____

    0 min      72  
    15 min     75  
    30 min     80  
    45 min     73  
    60 min     69  

[TF,dt] = isregular(TT)
TF = logical
   1

dt = duration
   15 min

TT является регулярным расписанием.

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

свернуть все

Входное расписание.

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

Временные или календарные Модули

Описание

'years'

Регулярный по году

'quarters'

Регулярный по квартал

'months'

Обычный по месяцу

'weeks'

Регулярно до недели

'days'

Регулярно по сей день

'time' (по умолчанию)

Регулярный относительно времени

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

свернуть все

True или false, возвращается как логическое 1 если время строки является регулярным и логическим 0 если их нет.

Временной шаг между временами строк, возвращенный как duration или calendarDuration значение. Если расписание не является регулярным, то dt является NaN значение.

Совет

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

    stime = datetime(2019,1,31);
    tstep = calmonths(1);
    TT = timetable('Size',[3 1],'VariableTypes',{'double'},...
                   'TimeStep',tstep,'StartTime',stime);
    tf = isregular(TT,'month')
    
    tf =
    
      logical
    
       0
    

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

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

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

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

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

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

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

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

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

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

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

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