Tiefen und Breitensuche < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 10:36 Mo 01.09.2008 | Autor: | yuffie |
Aufgabe | Also ich habe ein Programm geschrieben, wo ich meine Daten einlese und auch als Graph ausgebe. Nun habe ich das Problem, das mir die Nachbarknoten fehlen. |
Irgendwo ist in dem Programm der Wurm drin, oder ich habe einen Denkfehlen. Ich habe eine Musterlösung, für die Tiefen und Breitensuche, diese würde ich gerne benutzen.
Hier meine Programme
Datei-Anhang
Datei-Anhang
Dateianhänge: Anhang Nr. 1 (Typ: m) [nicht öffentlich] Anhang Nr. 2 (Typ: m) [nicht öffentlich] Anhang Nr. 3 (Typ: txt) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:24 Mi 03.09.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:25 Do 04.09.2008 | Autor: | Martin243 |
Hallo,
ich glaube, ich habe deinen Denkfehler entdeckt: Die Angaben in der Datei sollten doch die Knoten und Kanten darstellen und nicht die Koordinaten (ein reiner Graph hat keine Koordinaten).
Also habe ich dein Skript mal vereinfacht zu:
E_directed=load('Daten1.txt');
E_undirected=unique(sort(E_directed,2),'rows');
N=max(max(E_directed));
Graph=struct();
for ii=1:N,
Graph(ii).Name=sprintf('%g', ii);
Graph(ii).x=rand;
Graph(ii).y=rand;
Graph(ii).NachbarnID=E_directed(E_directed(:, 1)==ii, 2)';
Graph(ii).Nachbarn=char(Graph(ii).NachbarnID + 64); %irgendwie überflüssig...
end;
%plot des Graphen
fh1=figure(1);
clf;
hold on;
plot([Graph.x]',[Graph.y]','o');
plot([Graph(E_directed(:, 1)).x ; Graph(E_directed(:, 2)).x], ...
[Graph(E_directed(:, 1)).y ; Graph(E_directed(:, 2)).y], 'k-')
hold off;
Und schon funktioniert die Breitensuche.
Gruß
Martin
|
|
|
|