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

1 visualizzazione (ultimi 30 giorni)
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 :)

Risposta accettata

Stephen23
Stephen23 il 12 Feb 2019
Modificato: Stephen23 il 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 Commenti
Kevin Phung
Kevin Phung il 13 Feb 2019
Did not know you can concatenate uis{:} in that way with [], this will be very useful knowledge-- thanks Jan!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Object Programming in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by