Plot in real time

180 ビュー (過去 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

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by