Евклидово расстояние в Октаве

16

Я хотел бы знать, есть ли быстрый способ вычисления евклидова расстояния двух векторов в октаве. Кажется, что для этого нет специальной функции, так что я должен просто использовать формулу с sqrt?

акари
источник
Возможно, за это проголосовали, потому что это основной вопрос, на который вы сможете найти ответ, просмотрев документацию Octave или выполнив соответствующий поиск в Интернете. Однако я вижу, что поиск «евклидова октава» или «евклидово расстояние октавы» не дает полезных результатов почти так же быстро, как «норма октавы».
Элейн Хейл
Предложение: в следующий раз Google что-то вроде "Matlab расстояние между двумя векторами". Mathworks имеет централизованную документацию, которую легко найти (есть официальное руководство по документации Octave, которое вы должны найти, но для его поиска может потребоваться небольшая работа). Для чего-то такого простого, вероятно, что функция с тем же именем в Octave делает то же самое.
Стефан Смит
Статистика по этому вопросу говорит сама за себя.
кодек

Ответы:

31

Евклидово расстояние между двумя векторами есть две нормы их разности, следовательно,

d = norm( x1 - x2 , 2 );

должен сделать трюк в Октаве. Обратите внимание, что если второй аргумент to normпропущен, по умолчанию используется 2-норма.

Pedro
источник
0

Вот метод для вычисления расстояния между массивом векторов ( X) и одним вектором ( X(1, :)для примера):

distances = sqrt(sum((X - X(1, :)) .^ 2, 2));
Стивен Хоуэлл
источник