计算两个不同长度的矢量之间的距离

use*_*073 13 vector distance

计算相同长度的两个向量之间的距离有不同的方法:Euclidean,Manhattan,Hamming ......

我想知道任何计算不同长度矢量之间距离的方法.

ard*_*new 9

欧氏距离公式找出欧几里得空间中任意两点之间的距离.

欧几里得空间中的一个点也称为欧几里德向量.

您可以使用欧几里德距离公式计算两种不同长度的矢量之间的距离.

对于不同尺寸的矢量,同样的原理适用.

假设较高维的向量也存在于较高维空间中.然后,您可以将较低维向量中的所有缺失组件设置为0,以便两个向量具有相同的维度.然后,您将使用任何提到的距离公式来计算距离.

例如,考虑一个2维向量A与组件(a1,a2),和一个3维向量B与部件(b1,b2,b3).

为了表达A,你会设置它的组件(a1,a2,0).然后,使用以下公式可以找到和d之间的欧几里德距离:AB

d² = (b1 - a1)² + (b2 - a2)² + (b3 - 0)²

d = sqrt((b1 - a1)² + (b2 - a2)² + b3²)
Run Code Online (Sandbox Code Playgroud)

为了您的具体情况,这些组件将是要么0或者1,让所有差异会-1,01.平方的差异将只是01.

如果您使用整数或单个位来表示组件,则可以使用简单的按位运算而不是某些算术(^均值XORexclusive or):

d = sqrt(b1 ^ a1 + b2 ^ a2 + ... + b(n-1) ^ a(n-1) + b(n) ^ a(n))
Run Code Online (Sandbox Code Playgroud)

我们假设尾随成分A0,所以最终的公式将是:

d = sqrt(b1 ^ a1 + b2 ^ a2 + ... + b(n-1) + b(n))
Run Code Online (Sandbox Code Playgroud)