Plot in real time
534 次查看(过去 30 天)
显示 更早的评论
I want to take a 2-dimensional vector and plot it, but I want to show the line being drawn as if the data is being gathered in real time. However, I'll have the data already stored in an array.
For example, if I wanted to plot y = sin(x) from x = 1 to 25, then I would use the following command:
plot(sin(1:0.01:25));
But I want to see the curve being drawn as if it's being done in real-time. How would I do this?
0 个评论
采纳的回答
the cyclist
2013-7-25
One possible way:
x = 1:0.01:25;
y = sin(x);
n = numel(x);
figure
hold on
for i = 1:n
plot(x(1:i),y(1:i))
xlim([0 25])
ylim([-1.1 1.1])
pause(0.05)
end
4 个评论
Alireza Madani
2022-4-30
Does anyone know how can we program this scenario in a way that the speed of the while/for loop is controller with the real time? For example if we want to plot y = sin(t) and t = 0 : 0.01 : 25. It actually takes 25 seconds for the MATLAB to plot this.
更多回答(1 个)
Anshul Rathore
2019-3-25
Don't use hold on instead use drawnow function to update your plots as it is much faster.
x = 1:0.01:25;
y = sin(x);
n = numel(x);
figure;
for i = 1:n
plot(x(1:i),y(1:i),'-r');
xlim([0 25]);
ylim([-1.1 1.1]);
drawnow;
end
2 个评论
Jonathan Arias
2021-5-22
you have to add this line (before drawnow):
addpoints(an,x(i),y(i));
More examples: https://la.mathworks.com/help/matlab/ref/drawnow.html
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!