Hallo,
Ich habe unten eine Tabelle. Ich möchte die Distanz jedes Indexpunkts von den restlichen Indexpunkten in derselben Gruppe ermitteln, die durch die Kombination von Label1 und Label2 gebildet wird. Für jede Gruppe (wie U1, S1) gibt es in der folgenden Tabelle drei Indexpunkte. Ich muss die Distanz von Punkt 1 von 2 und 3, 2 von 1 und 3 und 3 von 1 und 2 anhand der X- und Y-Koordinaten berechnen. In ähnlicher Weise muss die Distanz jedes Punkts von den restlichen Punkten innerhalb der Gruppe auch für andere Gruppen wie (U1, S2), (U2, S1) und (U2, S2) berechnet werden. Überflüssige Distanzen in derselben Gruppe können entfernt werden, beispielsweise ist die Distanz von Punkt 1 von 2 dieselbe wie die von 2 von 1.
Meine ursprüngliche Tabelle hat mehrere Label1 (U1, U2, ..., U10) und Label2 (S1, S2, ... S10). Wie kann ich ein Sprungskript (jsl) schreiben, das eine Tabelle wie unten liest und eine Spalte mit Entfernungen in derselben Tabelle oder einer neuen Tabelle erstellt? Letztendlich versuche ich, die 50 nächsten Nachbarn für jeden Indexpunkt innerhalb derselben Gruppe (Un, Sn) zu finden.
Ich bin für jeden Rat sehr dankbar. Danke.

Kasse KDTabelle aus dem Scripting-Index, um loszulegen
Names Default To Here(1);
tbl = KDTable([1 2, 3 4, 5 6]);
distance = tbl << Distance between rows(1, 2);
//distance from row 1 to row 2 is:
Show(distance);
{rows, dist} = tbl << K nearest rows(2);
Show(rows, dist);
oder Distanz :
Names Default To Here(1);
exX1 = [1 2, 3 4, 5 6];
/*Compute squared Euclidean distance*/
exD = Distance(exX1, exX1);
//sqrt(exD);