It seems that PLOT command is being bypass and not being execute..

1 vue (au cours des 30 derniers jours)
Nimisha
Nimisha le 14 Mai 2016
Modifié(e) : Nimisha le 16 Mai 2016
delete(instrfindall)
clear all;clc
s = serial('COM6');
fopen(s)
A1 = 0; B1 = 0;
for i = 1:1000
P = fscanf(s,'%f')
if P == 1
A1 = A1+1; B1 = B1;
elseif P == 2
A1 = A1-1; B1 = B1;
elseif P == 3
A1 = A1; B1 = B1+1;
elseif P == 4
A1 = A1; B1 = B1-1;
else
end
plot(A1,B1,'*')
hold on
end
fclose(s)
delete(instrfindall)
I have written this code. I am receiving serially data very wel . But plot command is not being executed. As well * is not moving accordingly. Please correct me.

Réponse acceptée

Image Analyst
Image Analyst le 14 Mai 2016
A1 and B1 are just points, not vectors or arrays. So you will just see a single point, not a curve. To see it better, try this:
plot(A1, B1, 'b*', 'LineWidth', 2, 'MarkerSize', 30);
grid on;
If you want more points, then you need to make A1 and B1 vectors, or else put "hold on" and call plot over and over again with new values of A1 and B1.
  6 commentaires
Walter Roberson
Walter Roberson le 15 Mai 2016
Good point about the drawnow()
Nimisha
Nimisha le 16 Mai 2016
Modifié(e) : Nimisha le 16 Mai 2016
Thanks.
drawnow
Commmand works well to show and update plot.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 14 Mai 2016
After the
hold on
add
set(gca, 'xlimmode', 'auto', 'ylimmode', 'auto')
  1 commentaire
Nimisha
Nimisha le 15 Mai 2016
Ya. Thanks I modified my code with this command.
But my actual problem is mentioned above.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by