isregular

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

Описание

пример

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

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

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

  • Если временами строки является duration значения, затем задайте timeComponent как 'time' или используйте следующий синтаксис. 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 timeZone . Для списка секунд прыжка смотрите leapseconds.

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017b