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 июля или любую строку со временем вне первых двух кварталов из 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 или значения длительности с помощью datetime или duration функция. Задайте формат с помощью 'InputFormat' аргумент datetime или duration.

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

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

IntervalType

Описание

'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).

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

Введенный в R2017b