查看单个帖子
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在进行苛刻的计算时,MATLAB会推迟显示调用。这是为什么?

我正在MATLAB中实现算法。它可以计算最短路径等,因此对我的旧计算机要求很高。我在整个程序中放入了disp()调用,以查看所有时间的情况。

但是,当从特别繁重的for循环开始时,即使在循环结束之前,似乎都不会调用disp() 。这是为什么?我以为MATLAB确实是按顺序执行的,还是我只是因为太多的计算而使它阻塞,并且disp()调用的优先级最低?



回答:

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

这就是drawow()的功能。有关详细说明,请参见Yair Altman的文章

简介:MATLAB图形是Java Swing,并且操作在特殊的线程-事件调度线程(EDT)上进行。调用drawnow();刷新事件队列并更新图形窗口。



更多&回答...
poster 当前离线   回复时引用此帖