2017-10-24 16 views
2

Ich möchte den Abstand zwischen einem Punkt und einer Linie in einer beliebigen Anzahl (d. H. n) von Dimensionen berechnen.R: Abstand zwischen Punkt und Linie in n-Dimensionen

Ein hervorragendes Beispiel für 2- und 3-dimensionale findet sich here.

Gibt es eine Möglichkeit, diese Lösung auf eine größere Anzahl von Dimensionen zu verallgemeinern? Ich habe andere Lösungen previously geschrieben gesehen, aber ich bin mir nicht sicher, wie genau diese

Vielen Dank,

Ken in R. anwenden

Antwort

0

Ich habe eine Antwort herausgefunden, aus der Lösung arbeiten verknüpft in die ursprüngliche Frage. Den R-Code hier für zukünftige Leser veröffentlichen.

zwei Punkte A und B, die Linie von Interesse definieren (hier Länge 10)

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

Abstand von dem folgenden Punkt bestimmen, P

P <- runif(10, 0.0, 1.0) 

dann Lösung in original geschrieben Arbeit durch Frage

pa = P - A 
ba = B - A 

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

letzten, indem man die s die Länge d, die den Vektor von Interesse festzustellen, um von Quadraten seiner Elemente und dann seine Quadratwurzel

dist = sqrt(sum(d^2)) 
dist # the solution` 
Verwandte Themen