временной диапазон

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

Синтаксис

S = timerange(startTime,endTime)
S = timerange(startTime,endTime,intervalType)
S = timerange(startPeriod,endPeriod,unitOfTime)
S = timerange(timePeriod,unitOfTime)

Описание

пример

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 июля или любую строку со временем вне первых двух кварталов из 2 018.

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 путем определения аргумента 'InputFormat' функции datetime.

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

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

IntervalType

Описание

открытый

Выберите строки с временами, которые удовлетворяют открытый интервал 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 путем определения аргумента 'InputFormat' функции datetime.

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

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

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

Дата или компонент времени

Описание

годы

Выберите строки с временами, таким образом что 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).

дни

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

часы

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

минуты

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

секунды

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

Введенный в R2017b

Была ли эта тема полезной?