timerange

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

Описание

пример

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

Если 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 или длительности, или как пара векторов символов или строковых скаляров.

Если startTime и endTime являются векторами символов или строковыми скалярами, затем они задают даты и времена. Если startTime и endTime иметь форматы, timerange не распознает, затем преобразует их в datetime или значения длительности, используя 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, а не значения длительности.

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

Описание

'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