Distanza euclidea in Ottava


16

Vorrei sapere se esiste un modo rapido per calcolare la distanza euclidea di due vettori in Ottava. Sembra che non ci sia una funzione speciale per questo, quindi dovrei semplicemente usare la formula con sqrt?


Questo potrebbe essere stato sottovalutato perché questa è una domanda di base per la quale dovresti essere in grado di trovare la risposta guardando la documentazione di Octave o facendo una ricerca su Internet appropriata. Tuttavia, vedo che la ricerca di "ottava euclidea" o "ottava euclidea distanza" non produce risultati utili quasi altrettanto rapidamente di "norma di ottava".
Elaine Hale,

suggerimento: la prossima volta, Google qualcosa come "Distanza Matlab tra due vettori". Mathworks ha una documentazione centralizzata che è facile da trovare (esiste un manuale ufficiale di documentazione Octave che dovresti trovare, ma potrebbe essere necessario un po 'di lavoro per trovarlo). Per qualcosa di così semplice, è probabile che una funzione con lo stesso nome in Octave faccia la stessa cosa.
Stefan Smith,

Le statistiche su questa domanda parlano da sole.
Boatcoder

Risposte:


31

La distanza euclidea tra due vettori è la doppia norma della loro differenza, quindi

d = norm( x1 - x2 , 2 );

dovrebbe fare il trucco in Octave. Si noti che se il secondo argomento normviene omesso, la norma 2 viene utilizzata per impostazione predefinita.



0

Ecco un metodo per calcolare la distanza tra una matrice di vettori ( X) e un singolo vettore ( X(1, :)ad esempio scopi):

distances = sqrt(sum((X - X(1, :)) .^ 2, 2));
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.