Switch to full style
General MATLAB code examples.
Post a reply

Calculate euclidean distances

Fri Apr 01, 2011 10:13 pm

Calculate euclidean distances between samples .
usage :
Code:

mydistfunc
(X,Y,'sqeuclidean',0);
 

Code:
function D = mydistfunc(X, C, dist, iter)
%DISTFUN Calculate point to cluster centroid distances.
[n,p] = size(X);
D = zeros(n,size(C,1));
nclusts = size(C,1);

switch dist
case 'sqeuclidean'
    for i = 1:nclusts
        D(:,i) = (X(:,1) - C(i,1)).^2;
        for j = 2:p
            D(:,i) = D(:,i) + (X(:,j) - C(i,j)).^2;
        end
        % D(:,i) = sum((X - C(repmat(i,n,1),:)).^2, 2);
    end
case 'cityblock'
    for i = 1:nclusts
        D(:,i) = abs(X(:,1) - C(i,1));
        for j = 2:p
            D(:,i) = D(:,i) + abs(X(:,j) - C(i,j));
        end
        % D(:,i) = sum(abs(X - C(repmat(i,n,1),:)), 2);
    end
case {'cosine','correlation'}
    % The points are normalized, centroids are not, so normalize them
    normC = sqrt(sum(C.^2, 2));
    if any(normC < eps(class(normC))) % small relative to unit-length data points
        error('stats:kmeans:ZeroCentroid', ...
              'Zero cluster centroid created at iteration %d.',iter);
    end
   
    for i = 1:nclusts
        D(:,i) = max(1 - X * (C(i,:)./normC(i))', 0);
    end
case 'hamming'
    for i = 1:nclusts
        D(:,i) = abs(X(:,1) - C(i,1));
        for j = 2:p
            D(:,i) = D(:,i) + abs(X(:,j) - C(i,j));
        end
        D(:,i) = D(:,i) / p;
        % D(:,i) = sum(abs(X - C(repmat(i,n,1),:)), 2) / p;
    end
end
end % function




Post a reply
  Related Posts  to : Calculate euclidean distances
 Vectorized Matlab function calculate Euclidean distance     -  
 calculate speed of a car in javaCV     -  
 Calculate process time     -  
 Calculate score of the student     -  
 How to Calculate Volume of a Rectangle     -  
 Calculate the sum of values in an array     -  
 calculate sum of many text inputs in javascript     -  
 calculate data from multiple selection     -  
 calculate the total type of stocks     -  
 Calculate the area of a circle of given radius     -  

Topic Tags

Matlab Algorithms