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)