Using handle graphics for more global variables
3 ビュー (過去 30 日間)
古いコメントを表示
Can I modify the handles graphics in the GUI to store variables that I can than use globally? I need to pass variables in and out of functions in a GUI and am having problems.
Thanks
0 件のコメント
採用された回答
Matt Fig
2011 年 6 月 21 日
G = guidata(gcbf); % Get the application data
G.newvariable = 5; % Store new variables in this data.
G.newvariable2 = magic(3);
guidata(gcbf,G) % Now make the new variables available to other callbacks.
0 件のコメント
その他の回答 (2 件)
Eric
2011 年 6 月 21 日
handles is a structure that you can modify, as Matt points out above. His variable G is the handles structure that you're likely referencing in your question.
I prefer to use appdata rather than guidata. See the help for getappdata() and setappdata(). I think it's largely a matter of personal preference. For data that are used by most callbacks, using guidata might be more efficient from a coding point-of-view. For storing large arrays that are only used by a few callbacks, using appdata might be more memory efficient.
Regardless of which method you choose, you should make sure and document your code well. Keep a list of fields you add to the handles structure or appdata variables you define.
Good luck, Eric
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!