plotting results of an while loop
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi I have to plot the speed of a Basejumper in dependence of the time. For this I'm using a while loop with the plot command underneath. That's my code:
while s>0%
a=g+k/m*v.^2;
deltav=a*deltat;
v=v+deltav
deltas=v*deltat;
s=s+deltas;
t=t+deltat;
end
plot(t,v)
hold on
sprintf('Der Flug dauerte %5.3f Sekunden',t)
sprintf('Die Geschwindigkeit beim Aufschlag betrug %5.3f m/s',v)
Unfortunately Matlab shows only one point in the diagram not the whole graph. Does anybody knows what I did wrong?
Thanks Fabian
0 commentaires
Réponses (2)
Sean de Wolski
le 9 Fév 2012
You overwrite t,v on each iteration of the for-loop. Instead you need to either plot them then or store them to plot later.
count = 0;
while ...
count = count+1;
v(count) = v(count-1)+deltav;
end
or plot as you're going;
hold on
while ...
%stuff
plot(t,v)
end
2 commentaires
BHAGYASHREE WAGHULE
le 4 Oct 2018
Hello Sean, I tried your first suggestion of using count, but it gives an error saying the subscript indices must either be real positive integers or logicals.
VBBV
le 23 Jan 2023
ok, i think it will give error, because Matlab uses 1 based indexing,
while ...
count = count+1;
v(count+1) = v(count)+deltav; % use this instead, (count-1) = 0 ; Matlab
end
e.g.
S = 1:10;
S(0)
Voir également
Catégories
En savoir plus sur Graphics Performance dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!