how can i animate the line using for loop and if statement

3 vues (au cours des 30 derniers jours)
Rajawarman Thiruselvam
Rajawarman Thiruselvam le 6 Juil 2021
Commenté : Mathieu NOE le 7 Juil 2021
clear all
close all
clc
h = animatedline;
axis([1 4 1 4])
for x=1:4
if x==1
y(x)=1;
elseif x==2
y(x)=1;
elseif x==3
y(x)=2;
elseif x==4
y(x)=1;
elseif x>4
break;
addpoints(h,x(x),y(x));
drawnow
x=1:4;
end
end
I want the line should be move slowly through these points, please help me to fix this.

Réponse acceptée

Mathieu NOE
Mathieu NOE le 6 Juil 2021
hello
you can do much simpler , as x and y are fully defined in the initialization section , then you only have to loop - four times and that's it ! no need for if elseif statements
clear all
close all
clc
figure
h = animatedline;
axis([0 5 0 5])
x=1:4;
y = [1 1 2 1];
for ci=1:4
addpoints(h,x(ci),y(ci));
pause(0.5);
drawnow
end
.
  7 commentaires
Rajawarman Thiruselvam
Rajawarman Thiruselvam le 7 Juil 2021
Thank you! how can i change the colors of these lines except red,blue, green
for example i want orange and dark green or some other colors. how can i do this??
Mathieu NOE
Mathieu NOE le 7 Juil 2021
hello
see
code updated for orange and green colors
clear all
close all
clc
figure
h1 = animatedline;
h1.Marker = '*';
h1.Color = [1 0.4 0]; % orange
h2 = animatedline;
h2.Marker = '+';
h2.Color = [0 1 0]; % green
axis([0 5 0 5])
x1=1:4;
n = 100;
xx1=linspace(x1(1),x1(end),n);
y1 = [1 1 2 1];
y2 = [2 2 3 2];
yy1 = interp1(x1,y1,xx1);
yy2 = interp1(x1,y2,xx1);
for ci=1:n
addpoints(h1,xx1(ci),yy1(ci));
addpoints(h2,xx1(ci),yy2(ci));
pause(0.1);
drawnow
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Animation dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by