对matlab GUI操作对象(非GUI)

5视图(30天)
我难以更新的对象使用一个GUI的回调函数。我相信一定有一个好办法解决,我失踪,因为自己缺乏知识。如果有人能帮我解决问题(没有不必要的困难;)),我将很感激。
1)说,我有一个对象obj的内部变量“varx”和“不同”。
2)说,在obj的一种方法,我更新obj.varx。
为了保持更新方法调用的持续时间之外,我需要返回的对象。(如。obj = obj.method (…),)
如果我通过obj GUI回调并执行这个操作,我无法更新obj在主GUI功能,因为回调函数不返回的输出。(例如集(h。toggle_exp,“回调”,{@toggle obj, othervar});使用guidata()不更新特定变量,。
是唯一的方法来更新GUI对象在父函数将它们定义为全局变量?(我希望不是,…啊…)
任何想法如何)内更新父对象的方法,和/或b)更新特定的变量在父函数将是可怕的。
谢谢你提前,肖恩

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2011年11月15日
你可以assignin(调用者),但当你在一个GUI回调,调用者是基MATLAB工作区。主要的GUI功能并不是一个“父函数”一个回调。
您可以使用嵌套的函数,因此嵌套的变量。这可能是最好的方法。

答案(1)

肖恩·德Wolski
肖恩·德Wolski 2011年11月15日
还有总是/ setappdata:
医生setappdata
医生getappdata

类别

找到更多的在使用应用程序开发应用程序设计师帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!