Cannot plot iterations.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Matthew Worker
am 17 Mär. 2020
Kommentiert: Matthew Worker
am 17 Mär. 2020
I'm trying to plot iterations but it doesn't seem to be working. The figure pops up but no points do. This is confusing because both variables i'm plotting have the same size. How to I plot the iterations of v(k-1) against x ?
x=20:30;%range of inital velocities plotted
figure;
hold on
for i=20:30 %to iterate through a few intial velocities.
v0=i;
v(1)=v0;
s(1)=0;
for k=2:length(t) %This loop uses eulers formula to calculate velocity and displacment
muk=0.7;
a=-muk*g;
dvdt=a; %acceleration
dsdt = v(k-1); %velocity = displacment over time
%approx value of v at current step given previous value
v(k) = v(k-1) + dvdt*dt;
%approx value of s at current step given previous value
s(k)=s(k-1)+dsdt*dt;
%Break loop when velocity starts to become negative
if v(k) < 0
break
end
end
%Value before the first negative velocity value (this is the time where
%the car has stopped).
v(k-1) %this iterates through initial velocities corresponding to the final positive velocity value in each case
%plotting
plot(x,v(k-1))
end
1 Kommentar
Sriram Tadavarty
am 17 Mär. 2020
what are the values of t, dt, and g? what are you trying to plot? The command plot(x,v(k-1)) will plot only the last element of v.. Try plot(x(1:length(v)),v)
Akzeptierte Antwort
KSSV
am 17 Mär. 2020
Bearbeitet: KSSV
am 17 Mär. 2020
clear all ; clc;
t=20:30;%range of inital velocities plotted
dt = min(diff(t)) ;
g = 9.81 ;
figure;
hold on
for i=20:30 %to iterate through a few intial velocities.
v0=i;
v(1)=v0;
s(1)=0;
for k=2:length(t) %This loop uses eulers formula to calculate velocity and displacment
muk=0.7;
a=-muk*g;
dvdt=a; %acceleration
dsdt = v(k-1); %velocity = displacment over time
%approx value of v at current step given previous value
v(k) = v(k-1) + dvdt*dt;
%approx value of s at current step given previous value
s(k)=s(k-1)+dsdt*dt;
%Break loop when velocity starts to become negative
if v(k) < 0
break
end
end
%Value before the first negative velocity value (this is the time where
%the car has stopped).
v(k-1) %this iterates through initial velocities corresponding to the final positive velocity value in each case
%plotting
plot(t,v(k-1),'*')
end
7 Kommentare
KSSV
am 17 Mär. 2020
It is because your v(k-1) is only a single number i.e scalar. Which you can only plot by using markers.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!