Как выразить евклидово расстояние в двух измерениях вместо одного? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть две переменные, содержащие массив 300-мерных векторов с именами a и b.Из которых минимальное значение равно -10.0, а максимальное значение равно 10.0 на векторное значение.

Моя цель - визуализировать расстояние в двумерном пространстве .

Проблема

Визуализация в одном измерении относительно проста.Я беру векторы a и векторы b, вычисляю евклидово расстояние и могу визуализировать в одном измерении.Но теперь я хочу визуализировать по осям X и * Y-оси .

Pseudo Python

a = [0.1, 0.343423, -2.9008, etc...]
b = [-0.3455, -6.03983, 9.098, etc...]
distance = calculateEuclidean(a, b)
print(distance) # 6.39878 | this is 1 dimension... How to make it 2?

Примеры в любом программированииязык приветствуется: -)

PS:
Мой вопрос не о как вычислить евклидово расстояние (Stackoverflow заполнен им), а о том, как выразить его в двух довольночем одно измерение.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Вы можете легко сделать это на языке R., выразив 2 вектора в виде матрицы.

B = matrix(c=(2,3,4,3,8,2)
       nrow=3,
       ncol=2)
B gives you
 [,1] [,2] 
 [1,]    2    3 
 [2,]    4    3 
 [3,]    8    2

 v1 = (2,4,8)
 v2 = (3,3,2)

Вы можете работать со стандартными операциями матрицы, такими как транспонирование.Погрузитесь в документацию.

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

rdist из пакета поля

rdist(x1, x2)

Учитывая две матрицы, он вычисляет расстояние .

p означает Степень Минковского .

Для евклидова евклидова употребления.

rdist(X, metric = "euclidean", p = 2L)

"euclidean": sqrt(sum_i((v_i - w_i)^2))

"minkowski": (sum_i(|v_i - w_i|^p))^{1/p}

0 голосов
/ 11 декабря 2018

Как только расстояние по Евклидии определяется как

Формула здесь

Результат всегда скалярный.Если вы хотите рассчитать для отдельных размеров, вы должны использовать

a = [1,2,3]
b = [4,5,6]
distance1 = euclidianDistance(a[0],b[0]) //first dimension
distance2 = euclidianDistance(a[1],b[1]) //second dimension
distance3 = euclidianDistance(a[0],b[0]) //third dimension
...