MATLAB Answers

Coordinate interpolation with time

1 view (last 30 days)
em_++
em_++ on 28 Jul 2021
Commented: em_++ on 3 Aug 2021
Hello!
I have a little question.
So I have 2 Data sets:
The first one consists of 12 coordinates(Lat, Long) taken every second hour (0 , 2am , 4 am....).
The second data set is a data set taken in 24 hours, but this time there is data every second.
Now i want to interpolate so i can do some plotting. I already managed to interpolate with this code (for 2 coordinates; I did this for all 12 coordinates and put them together in the end):
n = 7198 %Number of seconds in 2 hours
tripPath = zeros(n,2)
pf = polyfit(Lat(:,1) Lat(:,2)], [(Long(:,1) Long(:,2)] %Coordinates
x = linspace(Lat:,1),(Lat(:,2),n);
y = polyval(pf,x)
tripPath(:,1) = x
tripPath(:,2) = y
but now the big problem is, that every now and then there is a second missing so its not always exactly 7198 seconds (I dont know exactly where they are missing).
I was thinking that maybe i could check between for example 0 and 20000 (0 and 2 am and so on) how many array elements there are and put it in n.
I just cant get it work at all.
Thanks in advance!
  2 Comments
em_++
em_++ on 31 Jul 2021
It acutally doesnt matter what data it is as i just need the coordinates fitting to the seconds :)

Sign in to comment.

Answers (1)

Peter Perkins
Peter Perkins on 29 Jul 2021
This line of code
pf = polyfit(Lat(:,1) Lat(:,2)], [(Long(:,1) Long(:,2)] %Coordinates
is not valid syntax for several reasons, but the important one is you don't say what order polynomial. I'm assuming that with two points, you're doing linear interpolation. If so, then SS is right, this is a one liner with a timetable and retime.
  2 Comments
em_++
em_++ on 3 Aug 2021
pf = polyfit([Lat(1,1) Lat(2,1)], [(Long(1,1) Long(2,1)],1) %Coordinates
should be the line

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!