overlapsrange
语法
说明
示例
确定时间表是否与时间范围重叠
创建一个行时间范围在 0 秒到 0.4 秒之间的时间表。
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.1))
TT=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
创建一个时间范围对象,其时间范围为 0.25–1.0 秒。要创建该对象,请使用 timerange
函数。其输入是持续时间,您可以使用 seconds
函数来创建它们。
rangeOfTimes = timerange(seconds(0.25),seconds(1.0))
rangeOfTimes = timetable timerange subscript: Select timetable rows with times in the half-open interval: [0.25 sec, 1 sec)
确定 TT
的行时间是否与 rangeOfTimes
指定的范围重叠。
tf = overlapsrange(TT,rangeOfTimes)
tf = logical
1
创建另一个时间范围对象,其时间范围为 0.7–1.0 秒。overlapsrange
函数返回 0,因为 rangeOfTimes
完全在 TT
的时间范围外。
rangeOfTimes = timerange(seconds(0.7),seconds(1.0))
rangeOfTimes = timetable timerange subscript: Select timetable rows with times in the half-open interval: [0.7 sec, 1 sec)
tf = overlapsrange(TT,rangeOfTimes)
tf = logical
0
比较时间表的时间范围
创建两个具有不同时间范围的时间表。这些时间表也可以有不同的变量和不同的行数。
Intensity = [100;98.7;95.2;101.4;99.1];
TT1 = timetable(Intensity,'TimeStep',seconds(0.1))
TT1=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
Readings = [74;83;99]; TT2 = timetable(Readings,'TimeStep',seconds(0.5),'StartTime',seconds(0.25))
TT2=3×1 timetable
Time Readings
________ ________
0.25 sec 74
0.75 sec 83
1.25 sec 99
确定 TT1
中的行时间范围是否与 TT2
中的行时间范围重叠。
tf = overlapsrange(TT1,TT2)
tf = logical
1
确定时间表是否包含时间
创建一个包含在每个月的开头和中旬设置的价格的时间表。
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
使用 datetime
函数指定一个时间点。此时间点是 2018 年 2 月 1 日午夜。
oneTime = datetime('2018-02-01')
oneTime = datetime
01-Feb-2018
确定 TT
中的行时间范围是否包含 oneTime
。
tf = overlapsrange(TT,oneTime)
tf = logical
1
oneTime
不必与 TT
的某特定行时间相匹配。如果 oneTime
是介于 TT
的最小和最大行时间之间的任意时间,则 overlapsrange
返回 1。
oneTime = datetime('2018-02-28 09:23:45')
oneTime = datetime
28-Feb-2018 09:23:45
tf = overlapsrange(TT,oneTime)
tf = logical
1
查找时间范围内的行
创建一个时间表。
Intensity = [100;98.7;95.2;101.4;99.1];
TT = timetable(Intensity,'TimeStep',seconds(0.1))
TT=5×1 timetable
Time Intensity
_______ _________
0 sec 100
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
0.4 sec 99.1
指定一个时间范围。然后确定 TT
的哪些行在该时间范围内。第二个输出参量 whichRows
是逻辑数组,其元素对应于 TT
中的行。对于行时间在时间范围内的每行,它包含的对应元素为 1
;对于行时间不在时间范围内的每行,它包含的对应元素为 0
。
rangeOfTimes = timerange(seconds(0.1),seconds(0.35)); [tf,whichRows] = overlapsrange(TT,rangeOfTimes)
tf = logical
1
whichRows = 5x1 logical array
0
1
1
1
0
要访问该时间范围内的行,请使用 whichRows
对 TT
进行索引。
TT2 = TT(whichRows,:)
TT2=3×1 timetable
Time Intensity
_______ _________
0.1 sec 98.7
0.2 sec 95.2
0.3 sec 101.4
输入参数
TT
— 输入时间表
时间表
输入时间表。TT
的最小和最大行时间决定其时间范围。
rangeOfTimes
— 时间范围
时间范围对象 | 时间表
时间范围,指定为时间范围对象或时间表。
如果将
rangeOfTimes
指定为时间范围对象,则使用timerange
函数创建时间范围。将范围的开始和结束时间显式指定为timerange
的输入。如果输入时间表
TT
有附加的事件表,则您可以通过使用事件过滤器的时间范围对象调用overlapsrange
。有关使用事件过滤器指定时间范围的详细信息,请参阅eventfilter
(自 R2023b 起)
如果您将
rangeOfTimes
指定为时间表,则不需要显式指定范围的开始和结束时间。overlapsrange
会自动从时间表的最小和最大行时间获取它们。
oneTime
— 单一时间
datetime
标量 | duration
标量
单一时间,指定为 datetime
或 duration
标量。
输出参量
tf
— True 或 false
1
| 0
True 或 false,如果 TT
的行时间范围与 rangeOfTimes
指定的时间范围或 oneTime
指定的时间点重叠,则返回逻辑值 1
,否则返回逻辑值 0
。
whichRows
— 在指定时间范围内的行的索引
逻辑数组
在指定时间范围内的行的索引,以逻辑数组形式返回。您可以使用 whichRows
对 TT
进行索引。
例如,在以下代码中,您可以使用 overlapsrange
的第二个输出对时间表 TT
进行索引。时间表 TT2
仅包括其行时间在 rangeOfTimes
指定的范围内的那些行。
[tf,whichVars] = (TT,rangeOfTimes); TT2 = T(whichRows,:)
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2020a 中推出R2023b: 指定使用事件过滤器的时间范围
当您调用 overlapsrange
时,您可以指定使用事件过滤器作为其开始和结束时间的时间范围。要使用事件过滤器,您必须首先将事件表附加到输入时间表。有关将 overlapsrange
与事件过滤器结合使用的详细信息,请参阅 eventfilter
。
另请参阅
withtol
| timerange
| seconds
| timetable
| datetime
| duration
| containsrange
| withinrange
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)