曼哈顿距离(Manhattan Distance)
顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离:
d12=|x1−x2|+|y1−y2| d 12 = | x 1 − x 2 | + | y 1 − y 2 |n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)的曼哈顿距离:
d12=∑k=1n|x1k−x2k| d 12 = ∑ k = 1 n | x 1 k − x 2 k |- Matlab计算曼哈顿距离:
X=[1 1;2 2;3 3;4 4];
d=pdist(X,'cityblock')
d= 2 4 6 2 4 2
欧氏距离(Euclidean Distance)
欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。
二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离:
d12=(x1−x2)2+(y1−y2)2−−−−−−−−−−−−−−−−−−√ d 12 = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2
三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:
d12=(x1−x2)2+(y1−y2)2+(x1−z2)2−−−−−−−−−−−−−−−−−−√ d 12 = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( x 1 − z 2 ) 2
n维空间点a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的欧氏距离(两个n维向量):
d12=