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.

Categories

Find more on Interpolation 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!