plotting results of an while loop

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

Antworten (2)

Sean de Wolski
Sean de Wolski am 9 Feb. 2012

2 Stimmen

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 Kommentare

BHAGYASHREE WAGHULE
BHAGYASHREE WAGHULE am 4 Okt. 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.
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)
Array indices must be positive integers or logical values.

Melden Sie sich an, um zu kommentieren.

Fabian Höfler
Fabian Höfler am 9 Feb. 2012

0 Stimmen

Yeah! It's running thanks a lot.

Kategorien

Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Gefragt:

am 9 Feb. 2012

Kommentiert:

am 23 Jan. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by