find_syste​m('statefl​ow_chart_h​andle', 'StateflowType', 'Data')

I'm trying to build up a Simulink model from script commands such as find_system, add_block, delete_block, etc. I'm building this model based on the information held within another model. Therefore, I need a list of data store memory blocks and stateflow data stores througout the model, so that I can then take those lists and build up an interface layer and not miss any. The find_system function works just fine for blocks, but it keeps returning an empty matrix when I try to use it on a known stateflow chart subsystem block handle.
My syntax is as follows: find_system('stateflow_chart_handle', 'StateflowType', 'Data')
Any ideas as to what is wrong, or suggestions as to how I can do this right or better?
Thanks.

 Akzeptierte Antwort

Kaustubha Govind
Kaustubha Govind am 28 Nov. 2012
You need to use the Stateflow API to search inside a Stateflow chart. Something like:
rt = sfroot;
m = rt.find('-isa', 'Simulink.BlockDiagram', '-and', 'Name', 'myModel');
sfDSMData = m.find('-isa', 'Stateflow.Data', 'Scope', 'Data Store Memory');

4 Kommentare

That totally worked! Thanks Kaustubha!
Follow up question, I want to change the scope of a data store to be, let's say, an input. What is the proper syntax using this Stateflow API to change that scope?
You should be able to do:
sfDSMData(1).Scope = 'Input';
Thank you :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by