运行我的程序后,MATLAB gui冻结

时间:2014-08-14 08:06:15

标签: matlab parallel-processing neural-network svm matlab-guide

我创建了一个使用Parallel computing加速Neural networkSVM模型的GUI。当我在GUI中启用Parallel computing时,所有事情(MATLAB,我的GUI和我的代码窗口)都将冻结,我也无法最大化这些窗口,但我的程序正在运行,使用工作人员和有时我可以看到图形和GUI值的更新。当我在程序中禁用Parallel computing时,一切正常。在第一种情况下,有时我的GUI会变成黑色(GUI的背景,按钮,文本框和编辑框都很好)但是值会在创建的GUI的迭代中更新。

这是什么问题?

感谢。

1 个答案:

答案 0 :(得分:1)

对不起,迟到了。这里的解决方案很难给出明确的答案。这个问题非常先进,而且大多数代码我们都无法做到。 parfor中发生的事情可能是matlab在其当前访问的元素上放置了某种锁(mutex或其他东西)。此外,由于parfor并行工作,因此循环中的任何数据都不可能不受影响。我能看到的唯一解决方案是运行更短的流程。这将允许你的gui更新之间的更新。

drawnow置于您希望gui更新的位置可能会有效。

其他选项也可以将gui放置在您不需要移动它或将其停靠在matlab主窗口的位置。但这些都是快捷方式,只能隐藏问题。