how to create a vector
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Abdullah Jizani
am 16 Mai 2016
Bearbeitet: Abdullah Jizani
am 26 Mai 2016
Hello everyone, I hope you are doing well. I need some help with my matlab project. I''m finding the velocity and time after each 1 meter displacement. It''s good when I''m doing that and I''m actually getting correct results. However, I couldn''t find the velocity and time after for example 1.5 or 1.6 meter. this is my program, so can you please help me with it.
function [v,t]=freefall(h)
g=9.81;
%Gravity in m^2/s
for k=1:h
v(k)=sqrt(2*g*k);
end
for
k=1:h
t(k)=sqrt(2*k/g);
end
plot(t,v)
xlabel(''Time
(s)'')
ylabel(''Velocity (m/s)'')
title(''Free fall: velocity vs time'')
0 Kommentare
Akzeptierte Antwort
Star Strider
am 16 Mai 2016
Use the interp1 function.
If I understand your code correctly, this will work. Add these lines to the end of your code:
k = 1:h; % Displacement
dspl_intrp = [1.5; 1.6]; % Displacements To Interpolate
vt_intrp = interp1(k, [v' t'], [1.5; 1.6], 'linear'); % Interpolate Velocity & Time
fprintf(1, 'Displacement %.2f, Velocity = %.2f, Time = %.2f\n', [dspl_intrp vt_intrp]')
Displacement 1.50, Velocity = 5.35, Time = 0.55
Displacement 1.60, Velocity = 5.53, Time = 0.56
I added the fprintf call to show that the result appears to be correct.
4 Kommentare
Star Strider
am 16 Mai 2016
I forgot that you used it as an index.
This works:
g=9.81; %Gravity in m^2/s
d = 1 : 0.1 : h; % Displacement Vector
for k=1:length(d)
v(k)=sqrt(2*g*d(k));
end
for k=1:length(d)
t(k)=sqrt(2*d(k)/g);
end
plot(t,v)
xlabel('Time (s)')
ylabel('Velocity (m/s)')
title('Free fall: velocity vs time')
Note that here you have to change the ‘k’ reference as the independent variable in your calculations to ‘d(k)’. This also gives you flexibility to make ‘d’ anything you want, even negative or zero, because ‘k’ is now derived from it.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!