SET with a dynamic function handle?

3 visualizaciones (últimos 30 días)
Jay
Jay el 4 de Mayo de 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

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by