Distance euclidienne en octave


18

Je voudrais savoir s'il existe un moyen rapide de calculer la distance euclidienne de deux vecteurs en octave. Il semble qu'il n'y ait pas de fonction spéciale pour cela, alors devrais-je simplement utiliser la formule avec sqrt?


Cela a peut-être été rejeté parce que c'est une question fondamentale pour laquelle vous devriez pouvoir trouver la réponse en consultant la documentation d'Octave ou en effectuant une recherche Internet appropriée. Cependant, je vois que la recherche de "octave euclidienne" ou "octave euclidienne distance" ne donne pas des résultats utiles presque aussi rapidement que "octave standard".
Elaine Hale

suggestion: la prochaine fois, Google quelque chose comme "distance Matlab entre deux vecteurs". Mathworks a une documentation centralisée qui est facile à trouver (il y a un manuel de documentation officiel d'Octave que vous devriez trouver, mais cela peut prendre un peu de travail pour le trouver). Pour quelque chose d'aussi simple, il est probable qu'une fonction du même nom dans Octave fasse la même chose.
Stefan Smith

Les statistiques sur cette question parlent d'elles-mêmes.
Boatcoder

Réponses:


33

La distance euclidienne entre deux vecteurs est la norme à deux de leur différence, d'où

d = norm( x1 - x2 , 2 );

devrait faire l'affaire dans Octave. Notez que si le deuxième argument de normest omis, la norme 2 est utilisée par défaut.



0

Voici une méthode pour calculer la distance entre un tableau de vecteurs ( X) et un seul vecteur ( X(1, :)à des fins d'exemple):

distances = sqrt(sum((X - X(1, :)) .^ 2, 2));
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.