Map array values relative to another array

2 views (last 30 days)
I have an array of xy coordinates, a = [4000,3000; 4200, 3100; 4014, 2900]; Array 'a' has been translated to lat lon values b = [72.1321, -32.789; 73.1879, -31.8987; 72.89109, -32.8796];
Now I have another set of xy coordinates, a2 = [3600,2900; 4000, 2100; 4200, 3200]; How can I get 'b2' based on interpolating values in 'a','b' and 'a2'?
Thanks, Mathew

Accepted Answer

Honglei Chen
Honglei Chen on 25 Apr 2017
Maybe something like this?
b2 = reshape(interp1(a(:),b(:),a2(:),'linear','extrap'),size(a2))
HTH

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 25 Apr 2017
aa = sort(a);
bb = sort(b);
F = {griddedInterpolant(aa(:,1),bb(:,1)),griddedInterpolant(aa(:,2),bb(:,2))};
out = cell2mat(cellfun(@(f,x)f(x),F,num2cell(a2,1),'un',0));
  1 Comment
Mathew Thomas
Mathew Thomas on 25 Apr 2017
Both methods work, just that I need to preserve the order as is without sorting.

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!