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: Starting at, including: 0.25 sec Ending at, but excluding: 1 sec See Select Times in Timetable.
确定 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: Starting at, including: 0.7 sec Ending at, but excluding: 1 sec See Select Times in Timetable.
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 = 5×1 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
的最小和最大行时间决定其时间范围。
时间范围,指定为时间范围对象或时间表。
如果将
rangeOfTimes
指定为时间范围对象,则使用timerange
函数创建时间范围。将范围的开始和结束时间显式指定为timerange
的输入。如果输入时间表
TT
有附加的事件表,则您可以通过使用事件过滤器的时间范围对象调用overlapsrange
。有关使用事件过滤器指定时间范围的详细信息,请参阅eventfilter
(自 R2023b 起)
如果您将
rangeOfTimes
指定为时间表,则不需要显式指定范围的开始和结束时间。overlapsrange
会自动从时间表的最小和最大行时间获取它们。
单一时间,指定为 datetime
或 duration
标量。
输出参量
True 或 false,如果 TT
的行时间范围与 rangeOfTimes
指定的时间范围或 oneTime
指定的时间点重叠,则返回逻辑值 1
,否则返回逻辑值 0
。
在指定时间范围内的行的索引,以逻辑数组形式返回。您可以使用 whichRows
对 TT
进行索引。
例如,在以下代码中,您可以使用 overlapsrange
的第二个输出对时间表 TT
进行索引。时间表 TT2
仅包括其行时间在 rangeOfTimes
指定的范围内的那些行。
[tf,whichVars] = (TT,rangeOfTimes); TT2 = T(whichRows,:)
扩展功能
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2020a 中推出当您调用 overlapsrange
时,您可以指定使用事件过滤器作为其开始和结束时间的时间范围。要使用事件过滤器,您必须首先将事件表附加到输入时间表。有关将 overlapsrange
与事件过滤器结合使用的详细信息,请参阅 eventfilter
。
另请参阅
withtol
| timerange
| seconds
| timetable
| datetime
| duration
| containsrange
| withinrange
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)