timerange
时间表行下标的时间范围
语法
说明
S = timerange(
创建一个下标索引,用于选择时间范围内的时间表行。startTime,endTime
)S
会选择时间在 startTime
和 endTime
指定的时间区间(包括 startTime
但不包括 endTime
)中的所有行。换句话说,该时间区间是半开区间。startTime
和 endTime
是日期时间或持续时间标量,或者是指定日期时间的字符向量或字符串。
如果 startTime
和 endTime
是日期时间值,则只能使用 S
对行时间是日期时间值的时间表通过下标进行索引。同样,如果 startTime
和 endTime
是持续时间值,则只能使用 S
对行时间是持续时间值的时间表通过下标进行索引。
S = timerange(
创建覆盖 startTime,endTime
,intervalType
)intervalType
指定的区间类型的下标。例如,如果 intervalType
为 'closed'
,则 S
包括其指定的时间范围中的 startTime
和 endTime
。
S = timerange(
使用由 startPeriod,endPeriod
,datetimeUnit
)datetimeUnit
指定的日期或时间分量,创建一个涵盖 startPeriod
和 endPeriod
之间的时间段的下标。例如,如果 datetimeUnit
为 'months'
,则 S
包含 startPeriod
的月份分量的起始时间,以及 endPeriod
的月份分量的结束时间。输入 startPeriod
和 endPeriod
可以是日期时间标量,如果是文本,则它们可以是指定日期时间的字符向量或字符串。
S = timerange(
使用 timePeriod
,datetimeUnit
)datetimeUnit
指定的日期或时间分量,创建一个涵盖 timePeriod
的起始和结束时间的下标。例如,如果 datetimeUnit
为 'day'
,则 S
包含 timePeriod
的天分量的起始和结束时间。输入 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 Times in Timetable.
选择时间位于 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 Times in Timetable.
选择时间位于 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'
将时间范围指定为时间单位。时间范围的开始是包括 2018 年 1 月 1 日的季度。该范围的结束是包括 2018 年 5 月 1 日的季度。时间范围包括整个季度,意味着范围结束于 2018 年 7 月 1 日开始之前的瞬间。
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 Times in Timetable.
选择 TT
的行。输出时间表包括 2018 年 5 月 15 日和 6 月 15 日的行,但不包括 7 月 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 年 2 月的某个日期,因此时间范围涵盖整个 2 月。
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 Times in Timetable.
选择 TT
的行。
TT(S,:)
ans=2×1 timetable
Time Price
___________ _____
01-Feb-2018 88
15-Feb-2018 108
输入参数
startTime,endTime
— 时间范围的开始和结束时间
日期时间标量对组 | 持续时间标量对组 | 字符向量对组 | 字符串标量对组
时间范围的开始和结束时间,指定为日期时间或持续时间标量对组,或者字符向量或字符串标量对组。
如果 startTime
和 endTime
是字符向量或字符串标量,则它们指定日期时间。如果 startTime
和 endTime
具有 timerange
无法识别的格式,则使用 datetime
或 duration
函数将其转换为日期时间或持续时间值。使用 datetime
或 duration
的 'InputFormat'
参数可指定格式。
要创建单侧时间范围,请使用 '-inf'
或 'inf'
作为开始或结束时间。语法 timerange('-inf',endTime)
指定 endTime
之前的所有日期时间,而 timerange(startTime,'inf')
指定 startTime
之后的所有日期时间。
intervalType
— 时间范围区间的类型
字符向量 | 字符串标量
时间范围区间的类型,指定为字符向量或字符串标量。下表显示了时间范围区间的类型。
区间类型 | 描述 |
---|---|
| 选择时间满足开区间 |
| 选择时间满足闭区间 |
| 选择时间满足半开区间 |
| 选择时间满足半开区间 |
| 等效于 |
| 等效于 |
startPeriod,endPeriod
— 开始和结束时间段
日期时间标量对组 | 字符向量对组 | 字符串标量对组
开始和结束时间段,指定为日期时间标量对组,或者字符向量或字符串标量对组。
如果 startPeriod
和 endPeriod
是字符向量或字符串标量,则它们指定日期时间。如果 startPeriod
和 endPeriod
具有 timerange
无法识别的格式,则使用 datetime
函数将其转换为日期时间值。使用 datetime
的 'InputFormat'
参数可指定格式。
要创建单侧时间范围,请使用 '-inf'
或 'inf'
作为开始或结束时间。例如,语法 timerange('-inf',endPeriod,'days')
指定 endPeriod
的结束日之前的所有日期时间。语法 timerange(startTime,'inf','days')
指定 startPeriod
日期起始时间后的所有日期时间。
timePeriod
— 时间段
日期时间标量 | 字符向量 | 字符串标量
时间段,指定为日期时间标量、字符向量或字符串标量。如果 timePeriod
是字符向量或字符串标量,则它指定 datetime
函数可以转换为日期时间值的日期时间。
datetimeUnit
— 时间段的分量
字符向量 | 字符串标量
时间段的分量,指定为字符向量或字符串标量。下表显示您可以指定的分量。
注意:仅当其他输入参数指定的是日期时间值而不是持续时间值时,才能指定 datetimeUnit
。
日期或时间分量 | 描述 |
---|---|
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
| 选择时间满足 |
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
不支持输入参数
datetimeUnit
。
有关详细信息,请参阅Code Generation for Timetables (MATLAB Coder)和Timetable Limitations for Code Generation (MATLAB Coder)。
版本历史记录
在 R2016b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)