两个向量之间的欧氏距离(单行矩阵)

12 matlab octave

我有两个向量(单行矩阵).假设我们已经知道了长度len.

A = [ x1 x2 x3 x4 x5 .... ]
B = [ y1 y2 y3 y4 y5 .... ]
Run Code Online (Sandbox Code Playgroud)

要计算它们之间的欧几里德距离,最快的方法是什么.我的第一次尝试是:

diff = A - B
sum = 0
for column = 1:len
    sum += diff(1, column)^2
distance = sqrt(sum)
Run Code Online (Sandbox Code Playgroud)

我已经通过这种方法循环了数百万次.所以,我正在寻找快速和正确的东西.请注意,我没有使用MATLAB,也没有可用的pdist2 API.

kol*_*kol 33

diff = A - B;
distance = sqrt(diff * diff');
Run Code Online (Sandbox Code Playgroud)

要么

distance = norm(A - B);
Run Code Online (Sandbox Code Playgroud)