How can I get the port number of a StateFlow input given it's handle programatically?
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Eric Bender
el 22 de Jul. de 2021
Comentada: David Berggren
el 6 de Feb. de 2025 a las 10:48
I have the handle of a StateFlow input from a previous find result. I'm trying to get the port number for that StateFlow input. I've been using the sf('get',<handle num>,<field name>) command for other fields like 'data.name', 'data.scope', etc. but can't see where I can get the port number. Can anyone help me with this?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692414/image.jpeg)
1 comentario
David Berggren
el 6 de Feb. de 2025 a las 10:48
chart = find(sfroot, '-isa', 'Stateflow.Chart', 'Name', 'YourChartName');
inputs = chart.find('-isa', 'Stateflow.Data', '-and', 'Scope', 'Input');
for i = 1:numel(inputs)
fprintf('Port %d: %s\n', inputs(i).Port, inputs(i).Name);
end
Respuesta aceptada
Jorge Calvo
el 5 de Oct. de 2021
It sounds like you are working with Stateflow.Data objects, where you have the ID property and want to find the Port property. In that case, you can do this:
>> x = find(sfgco,Id=301);
>> x.Port
4
4 comentarios
Jorge Calvo
el 8 de Oct. de 2021
Editada: Jorge Calvo
el 8 de Oct. de 2021
You can use sfroot instead of sfgco. That will look at all the Stateflow charts you have loaded.
>> x = find(sfroot,Id=301);
For more information, you can check out: https://www.mathworks.com/help/stateflow/api/overview-of-the-stateflow-api.html.
Más respuestas (0)
Ver también
Categorías
Más información sobre Complex Logic en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!