SET with a dynamic function handle?

1 次查看(过去 30 天)
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

采纳的回答

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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by