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.

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Decision Logic 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by