Direkt zum InhaltDirekt zur SucheDirekt zur Navigation
▼ Zielgruppen ▼

Humboldt-Universität zu Berlin - Mathematisch-Naturwissen­schaft­liche Fakultät - Computational Physics

baum_analyse.m

Cluster-Zerlegung mit der Baum-Suche

Objective-C source code icon baum_analyse.m — Objective-C source code, 1 KB (1554 bytes)

Dateiinhalt

function [feldr] = baum_analyse(feld)
% Clusteranalyse mit Baumsuche
feldr=feld; % return Variable
[Lx,Ly]=size(feld);

liste=zeros(Lx*Ly,2); % Arbeitsliste fuer Clustersuche
cluster=0;

for ya=1:Ly
for xa=1:Lx
   if feldr(xa,ya)==0
       cluster=cluster+1; % neuer Index vergeben
       feldr(xa,ya)=cluster;
       liste(1,:)=[xa ya];
       n=1; % letzter benutzter Listenplatz
       i=0;
       while i < n
           i=i+1;
           x=liste(i,1);y=liste(i,2);
           % rechten Nachbarn pruefen
           if x < Lx,
               if feldr(x+1,y)==0
                   feldr(x+1,y)=cluster;
                   n=n+1;
                   liste(n,:)=[x+1 y];
               end
           end
           % linken Nachbarn pruefen
           if x > 1
               if feldr(x-1,y)==0
                   feldr(x-1,y)=cluster;
                   n=n+1;
                   liste(n,:)=[x-1 y];
               end
           end
           % oberen Nachbarn pruefen
           if y < Ly
               if feldr(x,y+1)==0
                   feldr(x,y+1)=cluster;
                   n=n+1;
                   liste(n,:)=[x y+1];
               end
           end
           % unteren Nachbarn pruefen
           if y > 1
               if feldr(x,y-1)==0
                   feldr(x,y-1)=cluster;
                   n=n+1;
                   liste(n,:)=[x y-1];
               end
           end
       end % while loop: Cluster komplett
%       fprintf('\n Cluster % i aus %i  Punkten \n',cluster,n)
   end % erster if loop
end %loop xa
end %loop ya