在进行苛刻的计算时,MATLAB会推迟调用调用。这是为什么?

时间:2010-04-28 09:41:33

标签: algorithm matlab

我在MATLAB中实现了一个算法。除此之外,它计算最短路径等,因此对我的旧计算机要求很高。我已经通过程序进行disp()调用,以便随时查看正在发生的事情。

然而,当一个特殊的重循环开始时,disp()看起来不会被调用,直到循环结束,即使它在循环之前。这是为什么?我认为MATLAB实际上是按顺序执行的,或者我只是用太多的计算来阻塞它并且disp()调用的优先级最低?

1 个答案:

答案 0 :(得分:7)

我几乎可以肯定这是因为EDT。

这是函数drawnow()的用途。有关详细说明,请参阅article of Yair Altman

总结:MATLAB图形是Java Swing,操作发生在一个特殊的线程 - 事件调度线程(EDT)上。调用drawnow();刷新事件队列并更新图窗口。