- function [D2] = dist2(X, Y)
- % Calculates the squares of the distances of X and Y
- %
- % X: A Mxd array with m d-dimentional points
- % Y: A Nxd array with n d-dimentional points
- % d: Must be the same
- %
- % D2: The MxN matrix with the distances
- %
- [~, d1] = size(X);
- [~, d2] = size(Y);
- if d1 ~= d2
- error('X,Y column dimensions must match');
- end
- % debug
- %X_norm = sum(X.^2, 2);
- %Y_norm = sum(Y.^2, 2)';
- %XY = 2 * X*Y';
- D2 = max(sum(X.^2, 2) - 2 * X*Y' + sum(Y.^2, 2)', 0);
- D2 = sqrt(D2);
-
- end
-
|