Speed vs. Time Plot from position vector

8 views (last 30 days)
I've been given a position vector and a time interval, and I would like to plot the speed(magnitude of the velocity) over the given time interval. Here is the code to setup the problem:
% Time
t = linspace(0, 2*pi, 1000)';
% Position Vector
R_x = t.*cos(t);
R_y = t.*sin(2*t);
R_z = t;
R = [R_x, R_y, R_z];
% Velocity vector
R_x_prime = diff(R_x)./diff(t);
R_y_prime = diff(R_y)./diff(t);
R_z_prime = diff(R_z)./diff(t);
R_prime = [R_x_prime, R_y_prime, R_z_prime];
So, to find the speed, I need to use norm(R_prime); however, that only returns one value (165.5). I've tried to write a for loop that saves the values of the magnitude of R_prime as an array, but the values just aren't correct. One final note: I have to use numerical differentiation. Thanks in advance for the help.

Accepted Answer

Star Strider
Star Strider on 28 Nov 2017
For the numerical derivative, I would use the gradient function, since your data are regularly-sampled. If you must use the norm function, use a loop to take the norm of every row of ‘R_prime’.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!