Matlab Tricks,十八—— 矩阵间元素距离的计算

两个矩阵间元素(向量)距离的度量,首先想到的是遍历,循环的方式,显然 matlab 下的编程并不推荐,matlab 下矩阵向量化编程效率尤高。

先考虑两个向量距离的计算:

∥x−y∥2=∥x∥2+∥y∥2−2⋅xTy

% x, y
sqrt(x\'*x + y\'*y - 2*x\'*y)

进一步两个矩阵内部向量之间的距离:

% A_{N*d}, B_{M*d}
D = sum(A.*A, 2)*ones(1, M) + ones(N, 1) * sum(B.*B, 2)\' - 2*A*B\';