目录
4.drawnow limitrate nocallbacks
通常,使用Matlab绘制曲线时,一瞬间就可以将曲线绘制完成,我们无法看到绘制曲线的过程。
当我们使用drawnow这个函数时,就可以解决上述问题。
更新图窗并处理任何挂起的回调。
如果修改图形对象并且需要在屏幕上立即查看这次更新,请使用该命令。
drawnow limitrate 将更新数量限制为每秒 20 帧。如果自上次更新后不到 50 毫秒,或图形渲染器忙于处理之前的更改,则 drawnow 会丢弃新的更新。
如果在循环中更新图形对象并且不需要在屏幕上查看每个更新,请使用该命令。跳过更新可以产生更快的动画。挂起的回调得到处理,这样可以在动画期间与图窗交互。
会延迟回调(例如 ButtonDownFcn 回调),直至下个完整的 drawnow 命令执行。如果您想要阻止回调中断您的代码,请使用该选项。暂时延迟回调会禁用图窗交互,例如点击鼠标或调整图窗大小。延迟回调不会影响动画速度。
将更新数量限制为每秒 20 帧,如果渲染器繁忙则跳过更新。此语法还可以阻止回调中断代码,这样会暂时禁用图窗交互。
更新图窗但延迟回调。
- figure();
- h = animatedline;
- axis([0 4*pi -1 1])
- x = linspace(0,4*pi,2000);
-
- for k = 1:length(x)
- y = sin(x(k));
- addpoints(h,x(k),y);
- drawnow
- end
效果如下图:

- figure();
- x=1:1000;
- y=1:1000;
- grid on;
- for i=1:1000
- plot(x(i),y(i),'*');
- grid on;
- hold on;
- drawnow;
- end
效果如下图:
