主要内容

eventfilter

为选择的时间表行创建事件过滤器

自从R2023a

描述

例子

EF = eventfilter (eventLabels)创建一个事件过滤器匹配任何事件的事件标签等于指定的标签之一eventLabels

事件过滤器是一种过滤器,您可以使用下标行成一个时间表。过滤时间表行与一个事件过滤器使用这种语法创建:

  • 必须有一个附加的时间表事件表。

  • 事件表必须指定一个变量是事件标签变量。

您还可以创建更复杂的事件过滤器通过结合多个过滤器使用&|操作符。例如,eventfilter (“”)事件与事件匹配标签“一个”,而eventfilter (“A”) | eventfilter (“B”)比赛事件的标签“一个”“B”

例子

EF = eventfilter (TT)从一个事件表,创建事件过滤器连接到输入时间表TT。函数创建事件过滤器使用附加事件表的变量名。

每个变量的事件表成为财产的事件过滤器。匹配行事件过滤器属性满足一个条件,使用任何的关系运算符:<,< =,>,> =,= =,~ =。结合多个条件,使用&|操作符。

例子

全部折叠

创建事件过滤器。然后使用事件过滤器选择行发生在指定的事件的时间表。

首先,创建一个匹配任何事件的事件的事件过滤器标签“雨”

EF = eventfilter (“雨”)
EF = eventfilter约束:<事件标签变量> = =“雨”

加载一个时间表和一个示例MAT-file事件表。两个星期的时间表天气数据。事件表事件,事件标签,事件的长度和降水测量几个天气事件。显示的时间表和事件表。

负载weatherEvents.matweatherData
weatherData =15×2时间表时间温度湿度___________ ___________ ________ 36 45 02 - 01 - 11月- 2022年11月- 2022年11月31日76年03 - - 2022年37 43 04—05 36 46 - 2022年11月- 72年11月- 2022年38 06 - 2022 32 54 07年11月- 2022年11月35 50 08 - 34 45 09年11月- 2022年11月- 2022年32 72年10 - 11月30 - 2022 58 39 54 12 - 11 - 11月- 2022年11月- 2022年34个58 13 - 73年- 2022年11月31日- 2022年11月14 - 40 78 - 2022年11月15 - 34 66
weatherEvents
weatherEvents =4 x3 eventtable事件标签变量:EventType事件长度变量:EventLength时间EventType EventLength降水(mm) ___________ _____ ___________ _____________ 03 - 11月- 2022年冰雹1.2人力资源12.7 05 - 11月2022雨36小时114.3 10 - 11月18 - 2022雪雨人力资源25.4 - 2022年11月14 - 20 177.8人力资源

把事件表时间表。当你显示的时间表,你可以看到额外的标签行期间发生的事件。

weatherData.Properties.Events= weatherEvents
weatherData =15×2时间表时间温度湿度___________ ___________ ________ 36 45 02 - 01 - 11月- 2022年11月- 2022年31日76年冰雹37 43 04 - 03 - 11月- 2022年11月- 2022年36 46雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54 35 50 08 - 11月07 - 11 - 2022 - 2022 34 45 09年11月- 2022年32 72雪10 - 30 58 - 2022年11月11日- 11月- 2022年39 54 12 - 34 58 - 2022年11月13日—73年11月- 2022年31日雨40 - 2022年11月14 - 78 - 2022年11月15 - 34 66

选择的行对应的时间表的时候雨发生,使用事件过滤器作为行下标。雨事件,11月5日,2022年开始,持续了36个小时。因此,事件过滤器选择的行weatherData的行乘以11月5日和11月6日,因为事件跨越两个日期。事件表附加到最初的时间表也连接到输出的时间表。

:rainyDays = weatherData (EF)
rainyDays =3×2时间表时间温度湿度___________ ___________ ________雨05 - 11月- 2022年38 72雨06 - 11月- 2022 32 54雨14 - 78年11月- 2022年40

加载一个时间表和一个示例MAT-file事件表。把事件表时间表。然后显示时间表和事件表。

负载weatherEvents.matweatherData.Properties.Events= weatherEvents
weatherData =15×2时间表时间温度湿度___________ ___________ ________ 36 45 02 - 01 - 11月- 2022年11月- 2022年31日76年冰雹37 43 04 - 03 - 11月- 2022年11月- 2022年36 46雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54 35 50 08 - 11月07 - 11 - 2022 - 2022 34 45 09年11月- 2022年32 72雪10 - 30 58 - 2022年11月11日- 11月- 2022年39 54 12 - 34 58 - 2022年11月13日—73年11月- 2022年31日雨40 - 2022年11月14 - 78 - 2022年11月15 - 34 66
weatherEvents
weatherEvents =4 x3 eventtable事件标签变量:EventType事件长度变量:EventLength时间EventType EventLength降水(mm) ___________ _____ ___________ _____________ 03 - 11月- 2022年冰雹1.2人力资源12.7 05 - 11月2022雨36小时114.3 10 - 11月18 - 2022雪雨人力资源25.4 - 2022年11月14 - 20 177.8人力资源

从事件表创建事件过滤器连接到输入时间表。

EF = eventfilter (weatherData)
EF = eventfilter没有约束,没有选择变量<无约束> VariableNames:时间,EventType, EventLength、降水(毫米)

使用事件过滤器作为行下标。过滤器选择行期间发生的任何事件中列出的附加事件表。

:allEvents = weatherData (EF)
allEvents =5×2时间表时间温度湿度___________ ___________ ________冰雹03 - 11月- 2022 37 43雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54雪10 - 11月30 - 2022 58雨14 - 78年11月- 2022年40

选择排一个时间表,与事件相关的数据满足指定的条件。

首先,加载一个时间表和一个示例MAT-file事件表。把事件表时间表。

负载weatherEvents.matweatherData.Properties.Events= weatherEvents
weatherData =15×2时间表时间温度湿度___________ ___________ ________ 36 45 02 - 01 - 11月- 2022年11月- 2022年31日76年冰雹37 43 04 - 03 - 11月- 2022年11月- 2022年36 46雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54 35 50 08 - 11月07 - 11 - 2022 - 2022 34 45 09年11月- 2022年32 72雪10 - 30 58 - 2022年11月11日- 11月- 2022年39 54 12 - 34 58 - 2022年11月13日—73年11月- 2022年31日雨40 - 2022年11月14 - 78 - 2022年11月15 - 34 66

显示附加事件表。它有两个事件标签和事件的长度。

weatherData.Properties.Events
ans =4 x3 eventtable事件标签变量:EventType事件长度变量:EventLength时间EventType EventLength降水(mm) ___________ _____ ___________ _____________ 03 - 11月- 2022年冰雹1.2人力资源12.7 05 - 11月2022雨36小时114.3 10 - 11月18 - 2022雪雨人力资源25.4 - 2022年11月14 - 20 177.8人力资源

从附加的事件表创建事件过滤器。

EF = eventfilter (weatherData)
EF = eventfilter没有约束,没有选择变量<无约束> VariableNames:时间,EventType, EventLength、降水(毫米)

然后创建事件过滤器英孚下雨持续不到24小时的事件。

rainLessThan24 = EF。EventType = =“雨”& EF。EventLength <小时(24)
rainLessThan24 = eventfilter约束:EventType = =“雨”& EventLength < 24 hr VariableNames:时间、EventType EventLength,降水(毫米)

选择行weatherData下雨持续了不到24小时的事件。

weatherData (rainLessThan24:)
ans =1×2时间表时间温度湿度___________ ___________ ________雨14 - 78年11月- 2022年40

选择行之间发生事件的时间表。创建一个时间范围的端点指定为事件过滤器。然后使用时间范围为下标的时间表。

首先,加载一个时间表和一个示例MAT-file事件表。把事件表时间表。

负载weatherEvents.matweatherData.Properties.Events= weatherEvents
weatherData =15×2时间表时间温度湿度___________ ___________ ________ 36 45 02 - 01 - 11月- 2022年11月- 2022年31日76年冰雹37 43 04 - 03 - 11月- 2022年11月- 2022年36 46雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54 35 50 08 - 11月07 - 11 - 2022 - 2022 34 45 09年11月- 2022年32 72雪10 - 30 58 - 2022年11月11日- 11月- 2022年39 54 12 - 34 58 - 2022年11月13日—73年11月- 2022年31日雨40 - 2022年11月14 - 78 - 2022年11月15 - 34 66

然后创建一个时间范围,包括两个事件过滤器。第一个事件过滤器指定事件标记“冰雹”。第二个事件过滤器指定事件标记“雪”

EFstart = eventfilter (“冰雹”);EFend = eventfilter (“雪”);TR = timerange (EFstart EFend,“关闭”)
TR =时间表timerange下标:选择与事件时间表行次闭区间:[<事件标签变量> = =“冰雹”,<事件标签变量> = = "雪"]看到选择次时间表。

选择行之间的时间表发生事件使用TR的行下标。

:betweenEvents = weatherData (TR)
betweenEvents =8×2时间表时间温度湿度___________ ___________ ________冰雹37 43 04 - 03 - 11月- 2022年11月- 2022年36 46雨05 - 72年11月- 2022年38雨06 - 11月- 2022 32 54 35 50 08 - 11月07 - 11 - 2022 - 2022 34 45 09年11月- 2022年雪32 72年10 - 11月- 2022年30 58

输入参数

全部折叠

事件标签,指定为一个标量或矢量。标量或矢量除了可以包含任意数据类型datetime,持续时间,calendarDuration,,或时间表

例子:EF = eventfilter(“雷击”)创建事件过滤器的事件“闪电”作为一个标签。

例子:EF = eventfilter([“雨”、“冰雹”、“雪”))创建事件过滤器的事件“雨”,“冰雹”,或“雪”作为一个标签。

例子:EF = eventfilter ([1 4 5])创建事件过滤器的事件有一个指定的数字作为一个标签。

例子:EF = eventfilter (wildcardPattern +“风暴”)创建事件过滤器的事件标签结尾的字符串“风暴”

例子:EF = eventfilter (1) & eventfilter (2)为重叠事件创建事件过滤器。使用事件过滤器选择时间表事件标记的行1和事件标记2发生在同一时间。

输入时间表。TT必须有一个事件表附加到它吗事件财产。换句话说,TT.Properties.Events必须包含一个事件表。

版本历史

介绍了R2023a