exponenta event banner

timerange

Временной диапазон для подстрочной строки расписания

Описание

пример

S = timerange(startTime,endTime) создает подстрочный индекс для выбора строк расписания в пределах диапазона времени. S выбирает все строки, время которых находится в интервале времени, указанном startTime и endTime, в том числе startTime но не endTime. Другими словами, интервал времени является полуоткрытым интервалом. startTime и endTime это скаляры datetime или duration, или векторы символов или строки, задающие даты и время.

Если startTime и endTime являются значениями datetime, тогда можно использовать только S для подстрочной записи в расписание, время строки которого является значением datetime. Аналогично, если startTime и endTime являются значениями длительности, тогда можно использовать только S для подстрочной записи в расписание, время строки которого является значением длительности.

пример

S = timerange(startTime,endTime,intervalType) создает индекс по типу интервала, указанному в intervalType. Например, если intervalType является 'closed', то S включает оба startTime и endTime в заданном им диапазоне времени.

пример

S = timerange(startPeriod,endPeriod,unitOfTime) создает подстрочный индекс за период времени между startPeriod и endPeriod, используя компонент даты или времени, указанный в unitOfTime. Например, если unitOfTime является 'months', то S включает начало месяца, который является компонентом startPeriodи конец месяца endPeriod. Исходные данные startPeriod и endPeriod могут быть скалярами datetime или, если текст, векторами символов или строками, задающими даты и время.

пример

S = timerange(timePeriod,unitOfTime) создает нижний индекс, охватывающий начало и конец timePeriod, используя компонент даты или времени, указанный в unitOfTime. Например, если unitOfTime является 'day', то S включает начало и конец дня, который является компонентом timePeriod.

Примеры

свернуть все

Создайте расписание, содержащее время, а также измерения температуры, давления, скорости и направления ветра. Выберите строки, время которых находится в пределах указанного интервала времени.

Time = datetime({'12/18/2015 08:00:00';'12/18/2015 10:00:0';'12/18/2015 12:00:00';...
                 '12/18/2015 14:00:00';'12/18/2015 16:00:00';'12/18/2015 18:00:00'});
Temp = [37.3;39.1;42.3;45.7;41.2;39.9];
Pressure = [30.1;30.03;29.9;29.8;30.0;29.9];
WindSpeed = [13.4;6.5;7.3;8.5;9.2;4.3];
WindDirection = categorical({'NW';'N';'NW';'NW';'NNW';'N'});
TT = timetable(Time,Temp,Pressure,WindSpeed,WindDirection)
TT=6×4 timetable
            Time            Temp    Pressure    WindSpeed    WindDirection
    ____________________    ____    ________    _________    _____________

    18-Dec-2015 08:00:00    37.3      30.1        13.4            NW      
    18-Dec-2015 10:00:00    39.1     30.03         6.5            N       
    18-Dec-2015 12:00:00    42.3      29.9         7.3            NW      
    18-Dec-2015 14:00:00    45.7      29.8         8.5            NW      
    18-Dec-2015 16:00:00    41.2        30         9.2            NNW     
    18-Dec-2015 18:00:00    39.9      29.9         4.3            N       

Укажите временной диапазон между 12/18/2015 08:00:00 и 12/18/2015 12:00:00.

S = timerange('12/18/2015 08:00:00','12/18/2015 12:00:00')
S = 
	timetable timerange subscript:

		Select timetable rows with times in the half-open interval:
		[18-Dec-2015 08:00:00, 18-Dec-2015 12:00:00)

	See Select Timetable Data by Row Time and Variable Type.

Выберите строки с временами в диапазоне, указанном S. Расписание вывода включает начало временного диапазона, но не конец.

TT2 = TT(S,:)
TT2=2×4 timetable
            Time            Temp    Pressure    WindSpeed    WindDirection
    ____________________    ____    ________    _________    _____________

    18-Dec-2015 08:00:00    37.3      30.1        13.4            NW      
    18-Dec-2015 10:00:00    39.1     30.03         6.5            N       

Создайте расписание.

Time = [seconds(1):seconds(1):seconds(5)];
TT = timetable(Time',[98;97.5;97.9;98.1;97.9],[120;111;119;117;116],...
               'VariableNames',{'Reading1','Reading2'})
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   

Укажите интервал времени между двумя и четырьмя секундами.

S = timerange(seconds(2),seconds(4),'closed')
S = 
	timetable timerange subscript:

		Select timetable rows with times in the closed interval:
		[2 sec, 4 sec]

	See Select Timetable Data by Row Time and Variable Type.

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

TT2 = TT(S,:)
TT2=3×2 timetable
    Time     Reading1    Reading2
    _____    ________    ________

    2 sec      97.5        111   
    3 sec      97.9        119   
    4 sec      98.1        117   

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

Time = datetime(2018,1:12,15)';
Price = randi([85 110],12,1);
TT = timetable(Time,Price)
TT=12×1 timetable
       Time        Price
    ___________    _____

    15-Jan-2018     106 
    15-Feb-2018     108 
    15-Mar-2018      88 
    15-Apr-2018     108 
    15-May-2018     101 
    15-Jun-2018      87 
    15-Jul-2018      92 
    15-Aug-2018      99 
    15-Sep-2018     109 
    15-Oct-2018     110 
    15-Nov-2018      89 
    15-Dec-2018     110 

Укажите временной диапазон с помощью 'quarters' в качестве единицы времени. Начало временного диапазона - квартал, включающий 1 января 2018 года. Конец диапазона - квартал, включающий 1 мая 2018 года. Временной диапазон включает целые кварталы, что означает, что конец диапазона является моментом до начала 1 июля 2018 года.

S = timerange('2018-01-01','2018-05-01','quarters')
S = 
	timetable timerange subscript:

		Select timetable rows with times in: QUARTERS
		  Starting at, including:   01-Jan-2018 00:00:00
		  Ending at, but excluding: 01-Jul-2018 00:00:00

	See Select Timetable Data by Row Time and Variable Type.

Выберите строки TT. Расписание вывода включает в себя строки на 15 мая и 15 июня 2018 года, но не строку на 15 июля, или любую строку со временем вне первых двух кварталов 2018 года.

TT(S,:)
ans=6×1 timetable
       Time        Price
    ___________    _____

    15-Jan-2018     106 
    15-Feb-2018     108 
    15-Mar-2018      88 
    15-Apr-2018     108 
    15-May-2018     101 
    15-Jun-2018      87 

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

Time = datetime({'2018-01-01';'2018-01-15';'2018-02-01';'2018-02-15';
                 '2018-03-01';'2018-03-15'});
Price = randi([85 110],6,1);
TT = timetable(Time,Price)
TT=6×1 timetable
       Time        Price
    ___________    _____

    01-Jan-2018     106 
    15-Jan-2018     108 
    01-Feb-2018      88 
    15-Feb-2018     108 
    01-Mar-2018     101 
    15-Mar-2018      87 

Укажите временной диапазон с помощью 'months' в качестве единицы времени. Поскольку первым вводом является дата в феврале 2018 года, временной диапазон охватывает весь февраль месяц.

S = timerange('2018-02-01','months')
S = 
	timetable timerange subscript:

		Select timetable rows with times in: MONTHS
		  Starting at, including:   01-Feb-2018 00:00:00
		  Ending at, but excluding: 01-Mar-2018 00:00:00

	See Select Timetable Data by Row Time and Variable Type.

Выберите строки TT.

TT(S,:)
ans=2×1 timetable
       Time        Price
    ___________    _____

    01-Feb-2018      88 
    15-Feb-2018     108 

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

свернуть все

Время начала и окончания временного диапазона, заданного как пара скаляров datetime или duration или как пара векторов символов или строковых скаляров.

Если startTime и endTime являются векторами символов или строковыми скалярами, а затем задают даты и время. Если startTime и endTime имеют форматы, которые timerange не распознает, затем преобразует их в значения datetime или duration с помощью datetime или duration функция. Укажите формат с помощью 'InputFormat' аргумент datetime или duration.

Для создания односторонних временных диапазонов используйте '-inf' или 'inf' как время начала или окончания. Синтаксис timerange('-inf',endTime) указывает все даты и время до endTime, пока timerange(startTime,'inf') указывает все даты и время после startTime.

Тип интервала временного диапазона, заданного как вектор символа или скаляр строки. В таблице показаны типы интервалов временного диапазона.

Тип интервала

Описание

'open'

Выберите строки с временами, соответствующими открытому интервалу startTime < rowTime и rowTime < endTime.

'closed'

Выберите строки с временами, соответствующими закрытому интервалу startTime <= rowTime и rowTime <= endTime.

'openleft'

Выберите строки с временами, соответствующими полуоткрытому интервалу startTime < rowTime и rowTime <= endTime.

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

Выберите строки с временами, соответствующими полуоткрытому интервалу startTime <= rowTime и rowTime < endTime.

'closedright'

Эквивалентно 'openleft'.

'closedleft'

Эквивалентно 'openright'.

Начальный и конечный периоды времени, указанные как пара скаляров datetime или как пара векторов символов или строковых скаляров.

Если startPeriod и endPeriod являются векторами символов или строковыми скалярами, а затем задают даты и время. Если startPeriod и endPeriod имеют форматы, которые timerange не распознает, затем преобразует их в значения datetime с помощью datetime функция. Укажите формат с помощью 'InputFormat' аргумент datetime.

Для создания односторонних временных диапазонов используйте '-inf' или 'inf' как начальный или конечный периоды. Например, синтаксис timerange('-inf',endPeriod,'days') указывает все даты и время до конца дня endPeriod. Синтаксис timerange(startTime,'inf','days') указывает все даты и время после начала дня startPeriod.

Период времени, указанный как скаляр datetime, символьный вектор или строковый скаляр. Если timePeriod - символьный вектор или строковый скаляр, то он указывает дату и время, datetime функция может преобразовываться в значение datetime.

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

Примечание: Можно указать unitOfTime только когда другие входные аргументы указывают значения datetime, а не значения duration.

Компонент даты или времени

Описание

'years'

Выберите строки с такими временами, чтобы year(startPeriod) <= year(rowTime) и year(rowTime) <= year(endPeriod).

'quarters'

Выберите строки с такими временами, чтобы quarter(startPeriod) <= quarter(rowTime) и quarter(rowTime) <= quarter(endPeriod).

'months'

Выберите строки с такими временами, чтобы month(startPeriod) <= month(rowTime) и month(rowTime) <= month(endPeriod).

'weeks'

Выберите строки с такими временами, чтобы week(startPeriod) <= week(rowTime) и week(rowTime) <= week(endPeriod).

'days'

Выберите строки с такими временами, чтобы day(startPeriod) <= day(rowTime) и day(rowTime) <= day(endPeriod).

'hours'

Выберите строки с такими временами, чтобы hour(startPeriod) <= hour(rowTime) и hour(rowTime) <= hour(endPeriod).

'minutes'

Выберите строки с такими временами, чтобы minute(startPeriod) <= minute(rowTime) и minute(rowTime) <= minute(endPeriod).

'seconds'

Выберите строки с такими временами, чтобы second(startPeriod) <= second(rowTime) и second(rowTime) <= second(endPeriod).

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

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