algorithm - MATLAB 在进行要求苛刻的计算时会推迟 disp 调用。这是为什么?

标签 algorithm matlab

我正在 MATLAB 中实现一个算法。除其他事项外,它还计算最短路径等,因此对我的旧计算机来说要求很高。我输入了disp()调用整个程序以查看一直发生的情况。

然而,当开始一个特别繁重的 for 循环时,disp() 似乎在循环结束之前不会被调用,即使它出现在循环之前。这是为什么?我以为 MATLAB 真的是按顺序执行的,还是我只是用太多的计算阻塞了它,disp() 调用的优先级最低?

最佳答案

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

这就是函数 drawnow()是为了。参见 article of Yair Altman为了很好的解释。

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

关于algorithm - MATLAB 在进行要求苛刻的计算时会推迟 disp 调用。这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2728292/

相关文章:

python - 如何使用SMOP将Matlab转成Python代码

Matlab:如何在我的例程中接收函数(如 exp)作为参数?

c - 我应该如何以对数时间复杂度生成此序列的第 n 个数字?

matlab - 非对称高斯滤波器 - 水平和垂直滤波器的不同尺寸和 STD

algorithm - 使用递归关系分析时间复杂度

algorithm - 我想知道在所有现实世界的应用程序中如何使用聚类算法?

matlab - 如何将Matlab命令的输出重定向到文件?

python - MATLAB 中的连续插值?

algorithm - 如果我将一个文件的内容转换成一个大数,并用数学表达式表示,是否意味着我已经压缩了文件?

c - 反转字符串时获取 "Segmentation fault Core Dumped Error "