Why can't find_system find IC block?

I would like to find all initial condition blocks in my Simulink model, yet the following returns an empty cell array,
thisBlock = find_system(bdroot, 'BlockType', 'IC')
Can you correct this call to find_system? When I click on the block, gcb returns 'myModel/IC', so I believe the block type is correct.

 Réponse acceptée

Kaustubha Govind
Kaustubha Govind le 13 Avr 2012

1 vote

The IC block's BlockType is 'InitialCondition', so you should be using find_system(bdroot, 'BlockType', 'InitialCondition'). I would recommend using find_system(bdroot, 'LookUnderMasks', 'on', 'BlockType', 'InitialCondition') if you want to search inside masked subsystems also.

2 commentaires

K E
K E le 16 Avr 2012
Thanks as always! I had thought the block name (IC) was the same as block type (IntialCondition), so good to know that they are not. In case it is helpful to someone:
1) To find the block type,
get_param(gcb,'BlockType')
2) To highlight all such blocks,
thisBlock = find_system(bdroot, 'LookUnderMasks', 'on', 'BlockType', 'InitialCondition') ;
hilite_system(thisBlock, 'find') ; % Turn highlighting on
hilite_system(thisBlock, 'none') ; % Turn highlighting off
Kaustubha Govind
Kaustubha Govind le 16 Avr 2012
Thanks for posting your complete solution!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by