Hello, I need to run a loop in a GUI code that goes through a number of text fields tagged as instr1, instr2, instr3, ... in the GUI and edits the text something like
for i=1:n; set(handles.instr{i},'String','i'); end;
how can this be done? Thanks, Chris How can I

 Réponse acceptée

Jarrod Rivituso
Jarrod Rivituso le 5 Mai 2011

0 votes

A little string searching combined with some struct functions will get ya what you need
handles.instr1 = randn;
handles.instr2 = randn;
handles.instr3 = randn;
handles.sheep = randn;
handles.cat = randn;
handles.dog = randn;
fields = fieldnames(handles)
fieldMatches = strfind(fields,'instr')
fieldInd = ~cellfun(@isempty,fieldMatches)
validNames = fields(fieldInd)
for i = 1:length(validNames)
handles.(validNames{i})
end
Note the syntax
handles.('instr1')
is referred to in the documentation as dynamic field naming

Plus de réponses (1)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by