How to perform an interpolation for Cartesian coordinates?

Hi everybody, I am working on a table containing Cartesian coordinates (X,Y,Z). These coordinates represents the trajectory of a vehicle. The measurement rate is 12 measurements per minute (one measurement every 5 seconds). I would like to perform an interpolation in such a way that I get one measurement per second. I have tried to use "interp3" and "griddedInterpolant" but frankly the syntax is quite complex for a beginner. If someone takes the time to help me, I would be grateful. Best regards !!!

 Accepted Answer

Let's say TIME,X,Y,Z are your measurements at a distance of 5 sec for TIME.

Let's build a new time vector

TIME_REQUESTED = TIME(1):TIME(end) 

at a distance of 1 sec.

Then you get your 1 sec vectors X_REQUESTED, Y_REQUESTED and Z_REQUESTED simply by

X_REQUESTED = interp1(TIME,X,TIME_REQUESTED);
Y_REQUESTED = interp1(TIME,Y,TIME_REQUESTED);
Z_REQUESTED = interp1(TIME,Z,TIME_REQUESTED);

Best wishes

Torsten.

3 Comments

First, Torsten let me thank for your help. This worked perfectly. Actually, it didn't come to my mind to interpolate every dimension aside. I thought that the result should be different. If you may excuse me, I have one more question. In this example, we are dealing with a constant distance of time (5 seconds for instance). What if the initial measurements weren't equally distanced. How to perform the interpolation ? Thanks again for your time.
Just in the same way as above.
got it. Thanks for your time.

Sign in to comment.

More Answers (1)

t = 0:5:2*60 ;
N = length(t) ;
x = cos(t) ;
y = sin(t) ;
z = 2*t ;
plot3(x,y,z)
% Do inteprolation 
ti = min(t):1:max(t) ;
xi = interp1(t,x,ti) ;
yi = interp1(t,y,ti) ;
zi = interp1(t,z,ti) ;
hold on
plot3(xi,yi,zi,'.r')

4 Comments

Thank you for taking the time to answer me. However, I don't see the use of the variable "N". Moreover, I can't see why you defined
t = 0:5:2*60
I have given a pseudo code.....so that by understanding this..you can code your case.
Thank you for your help. I really appreciate.
Thanking is accepting or voting the answer..:)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!