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 Center および File ExchangeGraphics Performance についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by