Distância euclidiana em Oitava

16

Gostaria de saber se existe uma maneira rápida de calcular a distância euclidiana de dois vetores na oitava. Parece que não há função especial para isso, então devo usar apenas a fórmula com sqrt?

akari
fonte
Isso pode ter sido rejeitado porque esta é uma pergunta básica para a qual você deve encontrar a resposta, consultando a documentação do Octave ou fazendo uma pesquisa na Internet apropriada. No entanto, vejo que a pesquisa por "oitava euclidiana" ou "oitava distância euclidiana" não produz resultados úteis tão rapidamente quanto a "norma de oitava".
Elaine Hale
sugestão: da próxima vez, procure algo como "distância do Matlab entre dois vetores". O Mathworks possui documentação centralizada que é fácil de encontrar (existe um manual oficial de documentação do Octave que você deve encontrar, mas pode demorar um pouco para encontrá-lo). Para algo tão simples, é provável que uma função com o mesmo nome no Octave faça a mesma coisa.
Stefan Smith
As estatísticas desta pergunta falam por si.
boatcoder

Respostas:

31

A distância euclidiana entre dois vetores é a norma de sua diferença, portanto,

d = norm( x1 - x2 , 2 );

deve fazer o truque na oitava. Observe que, se o segundo argumento to normfor omitido, a norma 2 será usada por padrão.

Pedro
fonte
0

Aqui está um método para calcular a distância entre uma matriz de vetores ( X) e um único vetor ( X(1, :)por exemplo, para fins):

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