Я очень запутался в вычислении евклидова расстояния. Я нашел для этого функции dist2 {SpatialTools} или rdist {fields}, но они не работают должным образом.
Я полагаю, что одна точка имеет две координаты в карфесской системе, поэтому [x, y]. Чтобы измерить расстояние между 2 точками (определяется строкой), мне нужны 4 координаты для 2 точек, поэтому точка A: [x1, y1] точка B: [x2, y2]
Координация точек:
A[0,1]
B[0,0]
C[1,1]
D[1,1]
У меня есть две матрицы: x1 (там A и C, определены строками) и x2 (содержат B и D). Записано в матрице:
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)
так что я получаю
> 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)
Чтобы вычислить евклидово расстояние между
A <-> B # same as x1[1,] <-> x2[1,]
C <-> D # same as x1[2,] <-> x2[2,]
Я предполагаю, что для получения EuclidDist:
> 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
Я хотел бы просто получить вектор расстояний между двумя точками, идентифицированными координатами [x, y], однако, используя dist2
, я получаю матрицу:
> dist2(x1,x2)
[,1] [,2]
[1,] 1.000000 1
[2,] 1.414214 0
Мой вопрос: какие числа описывают реальное евклидово расстояние между A-B и C-D от этой матрицы? Я что-то не понимаю? Большое спасибо за каждый совет или любое объяснение.