Clear Filters
Clear Filters

how to create a vector

1 view (last 30 days)
Abdullah Jizani
Abdullah Jizani on 16 May 2016
Edited: Abdullah Jizani on 26 May 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'')

Accepted Answer

Star Strider
Star Strider on 16 May 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 Comments
Abdullah Jizani
Abdullah Jizani on 16 May 2016
but it shows me this error ??? Attempted to access v(1.1); index must be a positive integer or logical.
Error in ==> freefall at 7 v(k)=sqrt(2*g*k);
Star Strider
Star Strider on 16 May 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.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!