Effacer les filtres
Effacer les filtres

Map array values relative to another array

2 vues (au cours des 30 derniers jours)
Mathew Thomas
Mathew Thomas le 25 Avr 2017
Commenté : Mathew Thomas le 25 Avr 2017
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

Réponse acceptée

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

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 25 Avr 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 commentaire
Mathew Thomas
Mathew Thomas le 25 Avr 2017
Both methods work, just that I need to preserve the order as is without sorting.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interpolating Gridded Data dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by