关于Matlab的Drawow:它存储数字还是存储变量?

1 matlab plot drawnow

你可以帮我解决一下关于在Matlab上的DRAWNOW的问题吗?

当我们drawnow在Matlab中使用时,内部会发生什么?

它存储上一图的图形,然后在同一图上绘制下一部分图形

或者它会忘记整个上一个图形并绘制实际新图形(包括前一个和下一个图形)?

这两种方法都表现出相同的效果:动态图.但我想确切地知道里面发生了什么.

谢谢!

And*_*uri 7

drawnow 确保MATLAB停止执行任何操作并在屏幕上绘制.

如果你这样做

hold on
for ii=1:1000
   plot(ii,rand(1)); % assume complicated maths here
end
Run Code Online (Sandbox Code Playgroud)

MATLAB将运行代码并将plot调用发送到图形引擎.但是,由于代码优先于绘图,因此MATLAB忙于运行循环绘图.

如果你这样做

hold on
for ii=1:1000
   plot(ii,rand(1));
   drawnow; % Take a break, draw everything that you must before continuing
end
Run Code Online (Sandbox Code Playgroud)

然后,正如评论所说,您暂时停止执行代码,在图形管道中绘制所有内容,然后继续执行代码.

drawnow对于数字是否存储这一事实没有影响,这就是工作hold on.

如果您担心重绘整个事物,那么请确保您查看图形setget方法.有了他们,你可以getxdata,修改它,和set它再次,通过确保图形引擎不重绘/重新计算别的.


hold功能文档:

https://uk.mathworks.com/help/matlab/ref/hold.html

  • @ThienNhat这个问题标记为"MATLAB",所以每个人都假设是关于它的!用正确的标签询问有关python的相同问题,也许有专家可以告诉你更多;) (2认同)