Main Content

find

Identifique objetos especificados en la jerarquía

Descripción

ejemplo

objArray = find(location,propertyName,propertyValue) devuelve un arreglo de objetos de API de Stateflow® de la jerarquía de location que tienen una propiedad denominada propertyName con un valor de propertyValue.

ejemplo

objArray = find(location,"-regexp",propertyName,propertyValue) devuelve los objetos que tienen una propiedad denominada propertyName con un valor que coincide con la expresión regular especificada por propertyValue. Para obtener más información, consulte Expresiones regulares.

ejemplo

objArray = find(location,"-isa",objectType) devuelve los objetos de la jerarquía de location que tienen el tipo especificado por objectType.

ejemplo

objArray = find(location,"-depth",depth) devuelve los objetos en la profundidad especificada o por encima en la jerarquía de location.

ejemplo

objArray = find(location,"-property",propertyName) devuelve los objetos que tienen una propiedad con el nombre especificado.

ejemplo

objArray = find(location,"-method",functionName) devuelve los objetos que tienen una función de objeto con el nombre especificado.

ejemplo

objArray = find(location,"-function",function) devuelve los objetos para los que la función especificada devuelve true.

ejemplo

objArray = find(location,"-not",___) devuelve los objetos que no cumplen el criterio de búsqueda especificado. Puede especificar criterios de búsqueda con una de las sintaxis anteriores excepto "-depth" y "-regexp".

ejemplo

objArray = find(location,___,logicalOp,___) combina los criterios de búsqueda especificados con las sintaxis anteriores. Utilice una de estas operaciones lógicas:

  • "-and": los resultados deben cumplir ambos criterios de búsqueda.

  • "-or": los resultados deben cumplir al menos uno de los criterios.

  • "-xor": los resultados deben cumplir exactamente uno de los criterios.

Cuando utiliza varias operaciones lógicas, -and tiene la mayor precedencia, mientras que -or y -xor son asociativos por la derecha. Si no se especifica ninguna operación lógica, se asume -and.

Ejemplos

contraer todo

Busque los objetos del gráfico ch cuya propiedad Name es A.

namedIsA = find(ch,"Name","A")

Puede especificar nombres y valores de propiedad como PropertyName=PropertyValue, donde PropertyName no está entre comillas (desde R2021a). Esta sintaxis debe aparecer después de otros argumentos que estén encerrados entre comillas.

namedIsA = find(ch,Name="A")

Busque los objetos del gráfico ch cuya propiedad Name comience por la letra A.

nameStartsWithA = find(ch,"-regexp","Name,","^A")

Puede especificar nombres y valores de propiedad como PropertyName=PropertyValue, donde PropertyName no está entre comillas (desde R2021a). Esta sintaxis debe aparecer después de otros argumentos que estén encerrados entre comillas.

nameStartsWithA = find(ch,"-regexp",Name="^A")

Busque los estados del gráfico ch.

states = find(ch,"-isa","Stateflow.State")

Busque los estados del gráfico ch cuya propiedad Name comience por la letra A.

stateNameStartsWithA = find(ch,"-isa","Stateflow.State", ...
    "-and","-regexp","Name","^A")

Puede especificar nombres y valores de propiedad como PropertyName=PropertyValue, donde PropertyName no está entre comillas (desde R2021a). Esta sintaxis debe aparecer después de otros argumentos que estén encerrados entre comillas.

stateNameStartsWithA = find(ch,"-isa","Stateflow.State", ...
    "-and","-regexp",Name="^A")

Busque los objetos en los dos niveles superiores de la jerarquía del gráfico ch.

depthTwoObjects = find(ch,"-depth",2)

Busque los símbolos del gráfico ch. Los símbolos incluyen Stateflow.Data, Stateflow.Event, Stateflow.Message y otros objetos no que no son del gráfico y que tienen una propiedad Name.

symbols = find(ch,"-property","Name", ...
    "-not","-isa","Stateflow.Chart")

Busque los objetos gráficos del gráfico ch. Los objetos gráficos son objetos que no pertenecen al gráfico y que tienen una función de objeto denominada fitToView.

graphicalObjects = find(ch,"-method","fitToView", ...
    "-not","-isa","Stateflow.Chart")

Busque los objetos del gráfico ch para los que está habilitado el registro de señales. El registro de señales está habilitado cuando la subpropiedad LoggingInfo.DataLogging es true.

f = @(h) h.LoggingInfo.DataLogging;
signalLoggingOn = find(ch,"-function",f);

Argumentos de entrada

contraer todo

Ubicación en la que se desea buscar, especificada como un objeto Simulink.Root, un objeto Simulink.BlockDiagram o un objeto de API de Stateflow de uno de estos tipos:

Nombre de la propiedad, especificado como un escalar de cadena o un vector de caracteres.

Valor de la propiedad, especificado en el formato determinado por la propiedad.

Tipo de objeto que se va a buscar, especificado como un escalar de cadena, vector de caracteres o identificador de clase para un objeto.

Ejemplo: find(ch,"-isa","Stateflow.State") busca los estados del gráfico ch.

Ejemplo: find(ch,"-isa",class(object)) busca los objetos del mismo tipo que object.

Profundidad de la búsqueda de la jerarquía de objetos, especificada como un entero escalar no negativo o inf. Utilice inf para buscar en todos los niveles de la jerarquía.

Nombre de la función de objeto, especificado como un escalar de cadena o vector de caracteres.

Función de filtrado, especificada como un identificador de función. Esta función debe devolver un valor escalar lógico que indica si un objeto cumple los criterios.

Argumentos de salida

contraer todo

Resultados de la búsqueda, devueltos como un arreglo de objetos de API de Stateflow.

Sugerencias

  • Para limitar los resultados de búsqueda en función del valor de una subpropiedad, llame a find usando "-function" y un identificador de función. Para ver un ejemplo, consulte Buscar objetos para los que está habilitado el registro de señales.

  • Utilizar la función find en objetos Simulink.Root, Simulink.BlockDiagram o Stateflow.Machine puede devolver objetos de Simulink® que cumplan los criterios de búsqueda que especifique. Por ejemplo, este comando puede devolver un subsistema o bloque de Simulink llamado ABC:

    find(sfroot,"Name","ABC")

  • Abrir un modelo principal que haga referencia a un gráfico de Stateflow enlazado no garantiza que la API de Stateflow pueda encontrar dicho gráfico enlazado. Para acceder a los objetos de un gráfico de biblioteca enlazado, primero cargue el modelo de biblioteca en el espacio de trabajo de Simulink siguiendo uno de estos procedimientos:

    • Cargue el modelo de biblioteca llamando a la función load_system (Simulink).

    • Llame a la función find_system (Simulink) con el argumento FollowLinks establecido en on:

      find_system(FollowLinks="on");

    • Visualice un bloque o subsistema enlazado del modelo principal.

    • Compile o simule el modelo.

Historial de versiones

Introducido antes de R2006a