Matlab GUI 更改 2009a->2011b?



我有一个框架GUI应用程序,它提供了一组简单的菜单,这些菜单的条目共享一个公共回调函数,其唯一作用是设置全局变量MenuItem的值,该值对于每个条目都是不同的。然后在Switch-Case表达式中为MenuItem的每个值调用不同的函数,Switch-Case保存在While循环中,该循环的退出条件是MenuItem获得某个值。While循环的尾部是一个uiwait调用,在Switch-Case之后。

这在Matlab 2009a下工作得很好,但自从我升级到Matlab 2011b以来,它就坏了。

在Matlab 2011b下,MenuItem的值在回调中改变,但这个改变的值似乎不会传播到Switch-Case中。

在2009a和2011b之间有什么变化可能导致这种情况,以及解决方法吗?我试着阅读发行说明,但找不到任何相关的内容。

(我知道这是一种有点不正统的构建GUI的方式,它诞生于命令行编程的背景)

我不认为在MATLAB中GUI API在2009a和2011b之间发生了变化。如果MenuItem更改没有传播到switch案例中,那么您应该检查所比较的case语句是否仍然有效。您至少应该在switch语句周围发布代码,以便做出更合理的诊断。

最新更新