MATLAB Answers

Removing all highlightning programmatically

45 views (last 30 days)
Benjamin
Benjamin on 2 Nov 2016
Commented: dzid_ on 23 Jul 2019
Hello,
I am creating/deleting programmatically some simulink functions recursively, and for debug purpose, I hilghlight blocks I'm currently working on with the hilite_system function, for example:
hilite_system(gcbh)
I know I can remove the highlighting of a specific block by doing:
hilite_system(gcbh,'none')
But I don't manage to remove all the highlighting at once.
My question is, is there a simple way to do a global "Remove Highlighting" just like Simulink does (without specifying some blocks), or do I have to make a loop and force all my blocks to none one after another? It would work, but it feels like crushing a fly with a cannon.
I found the function remove_hilite.p but I don't manage to do what I intend with some random arguments.
Thanks,

  0 Comments

Sign in to comment.

Accepted Answer

Swarooph
Swarooph on 4 Nov 2016
There is no single function that can do this. You will need to use a collection of find_system and hilite_system to do this. Example below.
% Get highlighted blocks. Idea is to look for all blocks with yellow background (default highlight color).
% This results in a cell array of paths to all blocks that satisfy this condition.
% Note that if your highlight color is different or more than one color, you would need to run an
% appropriate or multiple commands to get the list of all blocks highlighted no matter what color.
hilited_blocks = find_system('my_model','BackgroundColor','yellow')
% Pass block list to hilite_system to switch 'off' color.
hilite_system(hilited_blocks,'off')

  0 Comments

Sign in to comment.

More Answers (2)

dzid_
dzid_ on 22 Jul 2019
Edited: dzid_ on 22 Jul 2019
This is better - the same as right-click -> Remove Highlighting
SLStudio.Utils.RemoveHighlighting(get_param(bdroot,'handle'))

  0 Comments

Sign in to comment.


Benjamin Paul
Benjamin Paul on 23 Jul 2019
This function didn t exist back in 2016 so thanks for the update, tried and seems to work fine

  1 Comment

dzid_
dzid_ on 23 Jul 2019
It's actually in MATLAB 2016a. For what it's worth, the function says:
% Copyright 2014 The MathWorks, Inc.
Glad it works.

Sign in to comment.

Sign in to answer this question.