Total members 11891 |It is currently Thu Jul 18, 2024 10:37 am Login / Join Codemiles

### Weka

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

_________________
M. S. Rakha, Ph.D.
Queen's University

 Tweet
Author:
 Posts: 2715Have thanks: 74 time
 Page 1 of 1 [ 1 post ]

Related Posts  to : Calculate euclidean distances
Vectorized Matlab function calculate Euclidean distance     -
Calculate process time     -
Calculate score of the student     -
How to Calculate Volume of a Rectangle     -
Calculate the sum of values in an array     -
calculate speed of a car in javaCV     -
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