我正在尝试绘制一个二维有限元解决方案,我正在绘制三角形的三角形:
for i=1:K
figure(1)
fill3(x,y,z,c)
hold on
end
这个问题是,当我运行代码时,它实际上是实时绘制所有代码,因此我可以看到每个三角形都被绘制出来。我希望它能让完成的数字一旦完成就会弹出。
我的朋友已编码相同的东西,除了她根本没有这个问题,我们找不到代码中的任何差异。我的电脑非常快,所以这不是滞后问题。我想也许在MATLAB中有一个我缺少的设置?
编辑:我发现了问题。显然,将'figure(1)'放在循环中会产生巨大的差异。我用'tic'和'toc'计时它在循环中用'figure(1)'标签花了54秒,在循环之前移动了2秒。去图......
答案 0 :(得分:4)
当你开始图时,将visible
属性设置为'off'
;完成绘图后,将可见性设置为'on'
。
h = figure('visible','off');
hold on;
for i=1:K
fill3(x,y,z,c);
end
hold off;
set(h,'visible','on');
另外,我不完全确定事件队列在MATLAB中是如何工作的,但我很确定你有一台快速计算机正在影响这一点。您可以使用for {循环中朋友较慢的comp上的drawnow
来模拟计算机上发生的情况。