Using cellfun() to set cell array of graphic objects 'Visible' Property to 'off'

1 view (last 30 days)
I have a 1xn cell array of graphic objects-- currently I have the logic in a for-loop
for j = 1:numel(uis)
uis{j}.Visible = 'off';
end
I've always had trouble with the syntax for the cellfun function...I know this is wrong, but I'm trying to do something like:
cellfun(@set,uis,'Visible','off')
*note: found out here:
that for loops are faster than cellfun(), but I would like to know the answer to my question anyway :)

Accepted Answer

Stephen23
Stephen23 on 12 Feb 2019
Edited: Stephen23 on 12 Feb 2019
You will need to define an anonymous function like this:
cellfun(@(g)set(g,'Visible','off'),your_cell_array_of_handles)
Note that you could easily have put all of the handles into one handle array, in which case your code is much simpler and more efficient:
set(array_of_handles,'Visible','off')
  4 Comments
Kevin Phung
Kevin Phung on 13 Feb 2019
Did not know you can concatenate uis{:} in that way with [], this will be very useful knowledge-- thanks Jan!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Programming 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!