%-------------------------------------------------------------------------- % Berechnung des minimalen und maximalen Abstands zwischen allen moeglichen % Punktpaaren in einer Punktmenge (x(i),y(i)), i=1,...,n. %-------------------------------------------------------------------------- n=15; x = rand(1,n); % x-Koordinate y = rand(1,n); % y-Koordinate dmax = 0; dmin = 100; for i=1:n % Berechne Abstand zwischen (x(i),y(i)) und den uebrigen Punkten. % Zunaechst erstellen wir eine Liste ohne x(i),y(i), damit der Abstand % nicht Null ist. x1 = x; y1 = y; x1(i) = [ ]; % Entferne x(i) von der Liste y1(i) = [ ]; % Entferne y(i) von der Liste % vektorisierte Anweisung: Bestimme Abstand von (x(i),y(i)) zu allen % anderen Punkten d = sqrt((x(i)-x1).^2 + (y(i)-y1).^2); % Finde maximalen Abstand. Vergleiche dabei auch mit dem maximalen Wert % aus vorherigen Iterationen. dmax = max([d dmax]); % Finde minimalen Abstand dmin = min([d dmin]); end fprintf('Minimaler Abstand: %8.4f\n',dmin); fprintf('Maximaler Abstand: %8.4f\n',dmax); % 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.0371 Maximaler Abstand: 0.9013