plotting results of an while loop

7 次查看(过去 30 天)
Fabian Höfler
Fabian Höfler 2012-2-9
评论: VBBV 2023-1-23
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

回答(2 个)

Sean de Wolski
Sean de Wolski 2012-2-9
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 个评论
BHAGYASHREE WAGHULE
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
VBBV 2023-1-23
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.

请先登录,再进行评论。


Fabian Höfler
Fabian Höfler 2012-2-9
Yeah! It's running thanks a lot.

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by