SET with a dynamic function handle?

3 Ansichten (letzte 30 Tage)
Jay
Jay am 4 Mai 2012
Hello,
I want to use the SET command inside a while loop, with the function handle changing each time through. Namely, I have a few listboxes (tagged listbox1, listbox2, listbox3 etc.) and based on a numerical condition, I want only up to a certain number of them to remain visible. This doesn't work, but may provide a better idea of what I'm shooting for:
%get the handles of all listboxes, get the corresponding tags
allHandleList = findobj('style','listbox')
allTagList = get(allHandleList,'Tag')%get the tags of all those handles
handles.numCores = str2double(getenv('Number_of_processors'))
n=1;
while n<=handles.numCores
%make a function handle based on each tag
fhandle=str2func(['handles.' allTagList{n}])
%use that function handle to change a PropertyValue
set(fhandle(),'Visible','off')
n=n+1; %update count variable
end

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 4 Mai 2012
No need to make a function handle.
fhandle = handles.(allTagList{n});
set(fhandle, 'Visible', 'off');
  2 Kommentare
Jay
Jay am 4 Mai 2012
Thanks! didn't know I could create the function name like that.
Walter Roberson
Walter Roberson am 4 Mai 2012
That's not a function name, that's a dynamic field name. "handles" is a structure.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by