Azzera filtri
Azzera filtri

h(i) = strcat('ha​ndles.uipa​nel',num2s​tr(i)), when I use set(h(i),'Visible','ON') ,it doesn't work

1 visualizzazione (ultimi 30 giorni)
Well ,I have a for ...end
for b=1:9
h = strcat('handles.uipanel',num2str(b));
set(h,'Visible','ON');
end
Error:Error using set; Value must be a handle.
Thank you for your help!

Risposta accettata

Walter Roberson
Walter Roberson il 24 Gen 2013
Modificato: Walter Roberson il 24 Gen 2013
In your situation you could use the dynamic fieldname approach.
  2 Commenti
Jan
Jan il 24 Gen 2013
I would even prefer not to let GUIDE create "handles.uipanel1", "handles.uipanel2", ..., but to create an array instead: "handles.uipanel(1)", etc. Then the loop can be omitted:
set(h.uipanel, 'Visible', 'ON');
But unfortunately the automatic code generation in GUIDE prefers to append the index to the name of the field. Then Walter's suggestion means:
for b = 1:9
set(handles.sprintf('uipanel%d', b), 'Visible', 'on');
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by