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.

 Accepted Answer

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 Comments

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';

Sign in to comment.

More Answers (0)

Categories

Find more on Decision Logic in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!