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