我在Matlab中创建了几个图形(使用GUIDE),它充当模型的配置GUI。这个想法是图F1中的变化应该会影响图F2,F3 ......中的选择。但是,有5个数字,都有不同的信息,并且可以在数字之间任意导航(推每个人物上的按钮,与其他每个人物一样)。
一个很大的问题是我想在任何时间点只打开一个数字。也就是说,当F1开始F X 时,我希望F1关闭。因此,我认为使用全局变量是不合适的。 (?)
我的问题是我根本无法掌握最新的所有数据。也许这可以使用appdata或guidata实现,但我无法绕过它。
示例:
由于F1和F2的句柄不同,将F1.handles传递给F2工作(F1.handles在F2中的varargin {1}中显示),但我不能将F1.handles与F2.handles连接。因此,我没有办法将F1.handles和F2.handles发送到F3(或任何其他图)。 (如果可以通过更简单的方式实现这一点,我可以放弃“任意导航功能”,但到目前为止我还没有能够使其工作。)
使用.mat-files(即将F X .handles写入文件并加载每个图中的每个文件)似乎是一种不好的做法,我甚至没有给它一个认真地去。
到目前为止,我还没有发现有必要从F N 更改F N ± X 中的数据,因此我猜.mat-file方法可以工作,但我的最新想法是使用Matlab OOP并传递一个类而不是句柄。我找到了关于该主题的旧帖子(Global (shared) variables in Matlab GUI code behind. Is there better way to do it then using handles structure?),但它仅链接到File Exchange,我无法理解如何使其适用于我的用例。
编辑1:我发现了这个Using GUIDE with object-oriented MATLAB?,并会尝试一下,但我仍然很难理解如何使用它,因为它似乎需要使用无论如何处理。
答案 0 :(得分:1)
U可以尝试使用全局变量来检索通过将句柄值分配给结构格式的全局变量而创建的所有图形的句柄。全局变量在内存中持续存在,直到您关闭数字。