2016-08-04 58 views
1

Hier ist ein einfaches Beispiel; Nehmen wir an, Sie hätten ein Array mit nur zwei Elementen. Jedes Element ist eine X-Y-Koordinate. Das erste Element ist (0, 0) und das nächste Element ist (3, 3). Ich möchte, in die Lücken füllen, so dass die Anordnung nunWas ist ein guter Algorithmus für die Interpolation fehlender Datenpunkte bei einer Reihe von X-Y-Koordinaten?

[(0, 0), (1, 1), (2, 2), (3, 3)] 

Diese durch Füllen in allen ganzzahligen Wert Punkte zwischen den beiden Elementen erfolgt bereits vorgesehen. Ich denke, das sollte wirklich einfach sein, aber aus irgendeinem Grund kann ich mir keinen guten Weg vorstellen. Gibt es dafür einen guten Algorithmus? Vielen Dank!

Antwort

0

Nehmen Sie jeden Nachbarn und linear interpolieren. Zum Beispiel, wenn ich [(0,0), (3,3)] hatte, finde ich zuerst heraus, dass die Steigung 1 ist. Dann sehe ich, wie viel Abstand zurückgelegt werden muss (3 Einheiten), und welche Entfernung jedes Intervall ist (d. H. (3/(num_interpolants+1))). Dann multipliziere ich jede Entfernung mit der Steigung und addiere sie zum y-Wert, während ich den x-Wert um die Distanz inkrementiere.

0

Lassen Sie uns einige Notation erste machen, gehen davon aus, dass wir linear zwischen Punkt A = (x ein, y ein) und Punkt B = (x b, y b) zu interpolieren wollen.

Auch gehen wir davon aus, dass nach der Interpolation wir n + 1 Punkte (mit den ursprünglichen Punkten A und B wobei die Punkte mit Indizes und n, respectively) haben wollen.

Dann geben die folgenden Formeln die Koordinaten des ith Punkt:

  • x i = x a + (x b - x a) * i/n
  • y i = y ein + (y b - y a) * i/n
+1

Vielen Dank! Sehr hilfreich – user3047641

+0

@ user3047641 Gern geschehen! Danke für den Kommentar, ich bin froh zu wissen, dass die Antwort hilfreich ist. :-) Ich würde es auch zu schätzen wissen, wenn Sie die Antwort abstimmen und/oder akzeptieren würden! – qwertyman