kir*_*chi 12 graphics matlab plot animation real-time
我是MATLAB的新手,我试图显示一些计算的实时图.我有一个N大小的矢量,我一次处理m值(比如说m = N/4),所以我想绘制第一个m值,然后一旦m计算出第二个值就让它们替换第一个图.
我的方法如下:
for i=1:N,
...
//compute m
...
plot(m);
end;
Run Code Online (Sandbox Code Playgroud)
但它无法更新每个循环中的绘图并等待所有循环完成绘制数据.我的问题是:我应该使用另一个函数而不是plot或者我可以在每个循环中添加一些延迟吗?
我认为必须有一种方法我不知道更新情节而不是每次重新绘制它.
gno*_*ice 32
正如Edric所说,你肯定希望drawnow在调用之后包含一个plot强制更新图形的命令.但是,有一种更有效,更平滑的动画方法,不涉及每次重建整个绘图.您可以简单地初始化绘图,捕获绘图对象的句柄,然后使用set命令修改循环中该对象的属性.这是一个例子:
hLine = plot(nan); % Initialize a plot line (which isn't displayed yet
% because the values are NaN)
for i = 1:N % Loop N times
...
% Compute m here
...
set(hLine, 'YData', m); % Update the y data of the line
drawnow % Force the graphics to update immediately
end
Run Code Online (Sandbox Code Playgroud)
此外,在循环之前和调用之后plot可以设置多个轴属性,例如轴限制等,如果希望轴保持固定并且不使用m绘制的每个新向量更改其外观.
| 归档时间: |
|
| 查看次数: |
51819 次 |
| 最近记录: |