主要内容

find

R2026b

从 Simulink.SimulationData.Dataset 对象获取元素或元素集合

描述

[dsOut,idx]=find(dsIn,prop,val,...) 返回 Simulink.SimulationData.Dataset 对象,该对象包含 Dataset 对象 dsIn 中与 prop 和 val 指定的一个或多个属性类型和值对组匹配的元素。该函数还返回 Dataset 对象 dsIn 中那些元素的索引。

示例

[dsOut,idx]=find(dsIn,prop,val,logical,...prop,val,...) 应用逻辑运算符 logical 来连接多个属性和值对组。您可以组合使用多个逻辑运算符。

示例

[dsOut,idx]=find(dsIn,'-regexp',prop,val,...) 使用正则表达式来匹配元素,就像您使用以下命令将属性的值传递给 regexp 函数一样

regexp(element.prop,val)
find 函数将正则表达式匹配应用于出现在 -regexp 后的 prop 和 val 参量。如果 find 函数不包含 -regexp 参量,则该函数将匹配元素,就像使用以下命令传递属性值一样:

isequal(element.prop,val)

示例

示例

输入参数

全部折叠

要在其中搜索匹配元素的 Dataset 对象,指定为 Simulink.SimulationData.Dataset 对象。

要搜索的属性类型,指定为字符串或字符向量。

Dataset 对象中的每个元素均为一个对象。每个对象的类型取决于它包含的数据。元素必须具有由 prop 定义的属性类型,才能包含在由 find 函数返回的 Dataset 对象中。例如,您可以使用 Signal 对象的任何属性在 Dataset 对象中查找 Simulink.SimulationData.Signal 对象元素:

  • Name - 元素的名称

  • PropagatedName - 传播的信号名称

  • BlockPath - 模块路径

  • PortIndex - 端口索引

  • PortType - 记录的端口类型

  • Values - 记录的时间和数据

find 函数返回的结果不限于一种对象类型。find 函数可以返回 Dataset 对象,该对象包含具有指定值的指定属性类型的任何对象类型的元素。例如,假设一个 Dataset 对象包含两个名为 myName 的元素,其中一个元素是 Signal 对象,另一个元素是 timeseries 对象。通过将属性类型指定为 Name 并将属性值指定为 myName,您可以使用 find 函数来搜索这两个元素。

dsName = find(ds,"Name","myName")
dsName = 

Simulink.SimulationData.Dataset 'myDataset' with 2 elements

                             Name    BlockPath 
                             ______  _________ 
    1  [1x1 timeseries]      myName  ''       
    2  [1x1 Signal    ]      myName  ''       

  - Use braces { } to access, modify, or add elements using index.

要搜索的属性值,指定为字符串或字符向量。使用 '-regexp' 参量时,属性值可以是正则表达式。

连接多个属性类型和值对组的逻辑运算符,指定为 '-and' 或 '-or'。

如果不指定运算,该函数将假定使用 '-and'。

输出参量

全部折叠

包含匹配一个或多个属性类型和值对组的元素的 Dataset 对象,以 Simulink.SimulationData.Dataset 对象形式返回。如果没有元素与指定的属性类型和值匹配,则返回的 Dataset 对象为空。

匹配指定属性名称和属性值的元素的 Dataset 对象 dsIn 中的索引,以向量形式返回。如果没有元素与指定的属性类型和值匹配,则 idx 为空。

替代方法

您可以使用花括号来简化索引语法以访问 Dataset 对象中的元素,而不是使用 find 函数。索引必须是不大于变量中元素数的正整数。例如,查找 logsout 数据集的第二个元素。

logsout{2}

您还可以使用 get 函数从数据集中获取元素或元素集合。

版本历史记录

在 R2015b 中推出