Plot in real time

조회 수: 501 (최근 30일)
Caleb
Caleb 2013년 7월 25일
댓글: Khang Nguyen 2023년 9월 7일
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?

채택된 답변

the cyclist
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
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.
Khang Nguyen
Khang Nguyen 2023년 9월 7일
Hi, can you graph multiple plots live at the same time?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Anshul Rathore
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
Abdoo
Abdoo 2021년 2월 12일
편집: Abdoo 2021년 2월 12일
could you show me, how I can plot on real time reading from usb?
Jonathan Arias
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 CenterFile Exchange에서 Graphics Performance에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by