Euklidischer Abstand in Oktave

16

Ich würde gerne wissen, ob es einen schnellen Weg gibt, den euklidischen Abstand zweier Vektoren in Oktave zu berechnen. Es scheint, dass es dafür keine spezielle Funktion gibt. Soll ich also einfach die Formel mit verwenden sqrt?

akari
quelle
Dies wurde möglicherweise herabgestimmt, da dies eine grundlegende Frage ist, auf die Sie die Antwort finden sollten, indem Sie sich die Octave-Dokumentation ansehen oder eine entsprechende Internetsuche durchführen. Ich sehe jedoch, dass die Suche nach "oktaveneuklidischen" oder "oktaveneuklidischen Abständen" nicht annähernd so schnell zu nützlichen Ergebnissen führt wie die "Oktavnorm".
Elaine Hale
vorschlag: nächstes mal google sowas wie "matlab-abstand zwischen zwei vektoren". The Mathworks hat eine zentralisierte Dokumentation, die leicht zu finden ist (es gibt ein offizielles Octave-Dokumentationshandbuch, das Sie finden sollten, aber es kann ein wenig Arbeit erfordern, um es zu finden). Für etwas so Einfaches ist es wahrscheinlich, dass eine Funktion mit demselben Namen in Octave dasselbe tut.
Stefan Smith
Die Statistiken zu dieser Frage sprechen für sich.
Boatcoder

Antworten:

31

Der euklidische Abstand zwischen zwei Vektoren ist daher die Zweinorm ihrer Differenz

d = norm( x1 - x2 , 2 );

sollte den Trick in Octave machen. Beachten Sie, dass normdie 2-Norm standardmäßig verwendet wird , wenn das zweite Argument für weggelassen wird.

Pedro
quelle
0

Hier ist eine Methode, um den Abstand zwischen einem Array von Vektoren ( X) und einem einzelnen Vektor ( X(1, :)zum Beispiel) zu berechnen :

distances = sqrt(sum((X - X(1, :)) .^ 2, 2));
Steven C. Howell
quelle