matlab plot in real time

3 views (last 30 days)
jianlong huang
jianlong huang on 11 Dec 2015
Commented: Geoff Hayes on 7 May 2020
just a really simple problem, how can I plot this diagram in real time. I want those red crosses plotted on to my graph one by one rather than all of them at the same time.
A=[1:10];
B=[1:10];
B=0;
for B=[1:10]
temp=A(B);
B2=num2str(B);
disp(['Reading number=',B2,'temperature=',temp2])
plot(A,'rx')
pause(0.2)
end

Accepted Answer

Geoff Hayes
Geoff Hayes on 11 Dec 2015
jianlong - try using the hold on command to retain the current plot when adding new ones. For example
hFig = figure;
hold on;
A=[1:10];
for k=1:10
disp(['Reading number=',k,'temperature=',A(k)])
plot(k,A(k),'rx')
pause(0.2)
end
Note how I have removed the B and the temporary variables and just access the element of A on the kth iteration as A(k).
  2 Comments
Geoff Hayes
Geoff Hayes on 11 Dec 2015
With
hFig = figure;
I am just creating a figure (to draw your plot on) and storing its handle in hFig. It isn't necessary for the above example, but if you need that handle for further processing then you have it ready to use.

Sign in to comment.

More Answers (2)

Joseph Cheng
Joseph Cheng on 11 Dec 2015
no idea what you're doing with A or B especially with defining B but then using it as the indexer in the for loop but get what you can from the example:
A=[1:10];
figure(1),hold on,axis([0 10 0 10])
for ind=[1:10]
plot(ind,A(ind),'rx')
pause(.1)
end

anil simsek
anil simsek on 6 May 2020
I have Arduino code, I want to draw it instantly in matlab. Can you help me ?
  1 Comment
Geoff Hayes
Geoff Hayes on 7 May 2020
anil - you will need to post some of your code so we can get an idea of what you are attempting. Also,this isn't an answer to the original question so please delete and add as a comment or create your own question.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!