Ich bin sehr verloren in Euklidische Distanzberechnung. Ich habe die Funktionen dist2 {SpatialTools} oder rdist {fields} gefunden, um dies zu tun, aber sie funktionieren nicht wie erwartet.Wie berechnet man den euklidischen Abstand zwischen zwei Punkten, die durch die Matrix definiert sind, die x, y enthält?
Ich nehme an, dass ein Punkt hat zwei Koordinaten in Carthesian System, so [x, y]. Um Abstand zwischen 2 Punkten (definiert durch Reihe) zu messen, ich brauche 4 Koordinaten für 2 Punkte, so Punkt A: [x1, y1] Punkt B: [x2, y2]
Punkte Koordinationen:
A[0,1]
B[0,0]
C[1,1]
D[1,1]
ich habe zwei Matrizen: x1 (A und C sind, die durch Reihen definiert) und x2 (enthält B und D). Geschrieben in Matrix:
library("SpatialTools")
x1<-matrix(c(0,1,1,1), nrow = 2, ncol=2, byrow=TRUE)
x2<-matrix(c(0,0,1,1), nrow = 2, ncol=2, byrow=TRUE)
so erhalte ich
> x1
[,1] [,2]
[1,] 0 1 #(as xy coordinates of A point)
[2,] 1 1 #(same for C point)
> x2
[,1] [,2]
[1,] 0 0 #(same for B point)
[2,] 1 1 #(same for D point)
euklidischen Abstand zwischen Zur Berechnung
A <-> B # same as x1[1,] <-> x2[1,]
C <-> D # same as x1[2,] <-> x2[2,]
Ich gehe davon aus EuclidDist zu erhalten:
> x1 x2 EuclidDist
[,1] [,2] [,1] [,2]
[1,] 0 1 #A [1,] 0 0 #B 1
[2,] 1 1 #B [2,] 1 1 #D 0
Ich möchte nur Vektor von Distanzen zwischen zwei Punkten zu identifiziere erhalten Koordinaten [x, y] jedoch dist2
Verwendung erhalten I eine Matrix:
> dist2(x1,x2)
[,1] [,2]
[1,] 1.000000 1
[2,] 1.414214 0
Meine Frage ist, die Zahlen, die die reale euklidischen beschreiben Abstand zwischen AB und CD von dieser Matrix? Versteh ich etwas falsch? Vielen Dank für jeden Rat oder jede Erklärung.
Groß Danke, Loop ist sehr nützlich, es funktioniert! :-D – maycca
Was ist, wenn es zwei Matrizen gibt, die ungleich lang sind? 'x1 <-Matrix (c (0,1,1,1,2,1), nrow = 3, ncol = 2, byrow = TRUE) x2 <-Matrix (c (0,0,1,1), nrow = 2, ncol = 2, byrow = WAHR) ' –