Euklidovská vzdálenost dvou bodů Vzdálenost bodů X1 a X2 = c. a = X2[x[2]] – X1[x[1]] b = X2[y[2]] – X1[y[1]] c^2 = (X2[x[2]] – X1[x[1]])^2 + (X2[y[2]] – X1[y[1]])^2 Uvažujeme-li souřadnice bodů X1 a X2 jako vektory, např.: x1 <- c(0,0) x2 <- c(1,2) Pak v R: x2 - x1 [1] 1 2 Protože: x2(1) – x1(1) = 1 – 0 = 1 x2(2) – x1(2) = 2 – 0 = 2 Tedy obecně funkce: euc_dist <- function(x1, x2) { sqrt(sum((x1 - x2)^2)) } euc_dist(x1,x2) kde funkce sqrt() představuje odmocninu a sum() součet, můžeme si to představit takto: Výsledek funkce euc_dist() pro body X1 a X2 (resp. vektory x1 a x2) je: euc_dist(x2,x1) [1] 2.236068 Vzdálenost bodů v prostoru: d^2 = c^2 + (X2[z[2]] – X1[z[1]])^2 Víme, že: a = X2[x[2]] – X1[x[1]] b = X2[y[2]] – X1[y[1]] c^2 = (X2[x[2]] – X1[x[1]])^2 + (X2[y[2]] – X1[y[1]])^2 d^2= (X2[x[2]] – X1[x[1]])^2 + (X2[y[2]] – X1[y[1]])^2 + (X2[z[2]] – X1[z[1]])^2 Uvažujeme-li souřadnice bodů X1 a X2 jako vektory, např.: x1 <- c(0,0,0) x2 <- c(1,2,3) Tak vidíme, že lze použít stejný vztah jako v předchozím případě. Tzn. funkci: euc_dist <- function(x1, x2) { sqrt(sum((x1 - x2)^2)) } euc_dist(x2,x1) [1] 3.741657 Textové pole: z Textové pole: X2[z2] Textové pole: X2[y2] Textové pole: X2[x2] Textové pole: X2[x2,y2, z2] Textové pole: X1[x1,y1, z1] Textové pole: y Textové pole: x Textové pole: X2[x2, y2] Textové pole: X1[x1,y1] Textové pole: X1[y1] Textové pole: X2[y2] Textové pole: X2[x2] Textové pole: X1[x1] Textové pole: x Textové pole: y