我创建了一个使用Parallel computing
加速Neural network
和SVM
模型的GUI。当我在GUI中启用Parallel computing
时,所有事情(MATLAB,我的GUI和我的代码窗口)都将冻结,我也无法最大化这些窗口,但我的程序正在运行,使用工作人员和有时我可以看到图形和GUI值的更新。当我在程序中禁用Parallel computing
时,一切正常。在第一种情况下,有时我的GUI会变成黑色(GUI的背景,按钮,文本框和编辑框都很好)但是值会在创建的GUI的迭代中更新。
这是什么问题?
感谢。
答案 0 :(得分:1)
对不起,迟到了。这里的解决方案很难给出明确的答案。这个问题非常先进,而且大多数代码我们都无法做到。 parfor
中发生的事情可能是matlab在其当前访问的元素上放置了某种锁(mutex
或其他东西)。此外,由于parfor
并行工作,因此循环中的任何数据都不可能不受影响。我能看到的唯一解决方案是运行更短的流程。这将允许你的gui更新之间的更新。
将drawnow
置于您希望gui更新的位置可能会有效。
其他选项也可以将gui放置在您不需要移动它或将其停靠在matlab主窗口的位置。但这些都是快捷方式,只能隐藏问题。