R: расстояние между точкой и линией в n измерениях.

Я хочу рассчитать расстояние между точкой и линией в любом количестве (т. е. n) измерений.

Отличный пример для 2-х и 3-х измерений можно найти здесь.

Есть ли способ обобщить это решение на большее количество измерений? Я видел другие решения, опубликованные ранее, но я не уверен, как именно это применить в R.

Большое спасибо,

Кен


person Ken Thompson    schedule 24.10.2017    source источник


Ответы (1)


Я нашел ответ, работая с решением, указанным в исходном вопросе. Размещение кода R здесь для будущих читателей.

две точки, A и B, определяют линию интереса (здесь длина 10)

A <- runif(10, 0.0, 1.0)
B <- runif(10, 0.0, 1.0)

определить расстояние до следующей точки, P

P  <- runif(10, 0.0, 1.0)

затем проработайте решение, опубликованное в исходном вопросе

pa = P - A
ba = B - A

t = as.vector((pa %*% ba) / (ba %*% ba))
d = (pa - t * ba)

наконец, определите длину интересующего вектора d, взяв сумму квадратов его элементов, а затем его квадратный корень

dist = sqrt(sum(d^2))
dist # the solution`
person Ken Thompson    schedule 24.10.2017