%--------------------------------------------------------------------------
% Berechnung des minimalen und maximalen Abstands zwischen allen moeglichen
% Punktpaaren in einer Punktmenge (x(i),y(i)), i=1,...,n.
% Vektorisierte Version.
%--------------------------------------------------------------------------

rng('default');
tic;
n=15;
x = rand(1,n); % x-Koordinate
y = rand(1,n); % y-Koordinate
e = ones(n,1);

dist = sqrt((e*x-(e*x)').^2 + (e*y-(e*y)').^2);
dist = dist + diag(nan*e);
dmax = max(dist(:));
dmin = min(dist(:));
t_vec = toc;

fprintf('Minimaler Abstand: %8.4f\n',dmin);
fprintf('Maximaler Abstand: %8.4f\n',dmax);
fprintf('Benoetigte Zeit: %8.4e\n',t_vec);

% Zeichne alle Punkte
plot(x,y,'r.','markersize',30)
title('Punktmenge','FontSize',14)
xlabel('x-Koordinate','FontSize',14)
ylabel('y-Koordinate','FontSize',14)
axis('square')
Minimaler Abstand:   0.0327
Maximaler Abstand:   1.1260
Benoetigte Zeit: 1.5634e-04