declare variable accross all button
1 次查看(过去 30 天)
显示 更早的评论
hello guys, i have problem in declaring a variable, im building a GUI(guide user interface) with some buttons, what i mean is to declare variable "k=1" globally so every buttons "function pushbutton_Callback(hObject, eventdata, handles)" can use it in the same mean, because every time i push other buttons it says "??? Undefined function or variable 'k' " . if u guys have exprience in building gui, where should i put the variable at? or maybe using particular function?
0 个评论
采纳的回答
Image Analyst
2011-10-29
The above two options, plus some additional ones, are described in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.3F
6 个评论
更多回答(2 个)
Walter Roberson
2011-10-29
It is not possible to do that in MATLAB, and it would be a disaster if you could, since there are no doubt plenty of MATLAB library routines that use "k" for their own purposes.
Ordinarily, each MATLAB function has its own local variables, which are separate from those of other functions, and from those of the base workspace. However, if several functions, and possibly the base workspace, all declare a particular name as global, they all share a single copy of that variable. Any assignment to that variable, in any function, is available to all the functions declaring it global.
Notice how the value is only shared with "all the functions declaring it global", not with all routines.
0 个评论
Naz
2011-10-29
Just simply use handles.k instead of k everywhere. Then, after you changed this variable and want to save changes to it, you need to type
guidata(hObject, handles); % this saves changes
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!