How to perform an interpolation for Cartesian coordinates?

6 views (last 30 days)
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

Torsten
Torsten on 18 Apr 2018

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

Sign in to comment.

More Answers (1)

KSSV
KSSV on 18 Apr 2018
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
MOHAMED BEN STA
MOHAMED BEN STA on 18 Apr 2018
Edited: MOHAMED BEN STA on 18 Apr 2018
Thank you for your help. I really appreciate.

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!