Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
vermutlich handelt es sich hier um einen absoluten Anfängerfehler. Ich versuche jetzt schon seit mindestens 1 Stunde den Fehler zu finden. In folgenden Code soll eine Matrix mit Werten belegt werden und anschließend sollen diese ausgegeben werden, was aber nicht geschieht.
Code:
}
else{ //wenn gerichteter Graph zuerst Adjazenzmatrix erstellen
for(Node p: nodes){
System.out.println("Es geht um den Knoten "+p.getLabel());
EdgeIterable edges0 = graph.getEdges(p);
for(Edge ed: edges0){
if(ed.getSource() == p){
int lab1 = (Integer) p.getAttribute(col);
Node target = ed.getTarget();
int lab2 = (Integer) target.getAttribute(col);
matrixMod[lab1][lab2] = 1;
System.out.println(p.getLabel() + " "+target.getLabel()+ " "+
matrixMod[lab1][lab2]);
}
}
}
//Adjazenzmatrix testweise ausgeben
System.out.println("Jetzt wird die Adjazenzmatrix ausgegeben");
for(int i=0; i < matrixMod.length; i++){
for(int j=0; j < matrixMod.length; j++){
System.out.println(matrixMod[i][j]);
}
}
wird auch tatsächlich der Wert ausgegeben aber beim Code unterhalb von
"//Adjazenzliste testweise ausgeben" , werden nur 0en ausgegeben mit Ausnahme der Stelle matrixMod[3][3], dort wird eine 1 ausgegeben.
Das EdgeIterable bewirkt das über alle Kanten, welche mit dem Knoten p verbunden sind, in der
for-Schleife iteriert werden kann. Der Teil sollte eigentlich korrekt sein, habe zumindest nachgeprüft ob
tatsächlich über alle Kanten iteriert wird, was auch geschieht.
Du benutzt einen Haufen Variablen, deren Belegung wir nicht kennen, rufst diverse Methoden auf, deren Implementierung wir nicht kennen und machst dann irgend etwas mit den Ergebnissen, die wir nicht kennen. Da ist es schwierig, etwas Konkretes zu sagen. Ich würde vielleicht beim ersten sysout mal die Werte von lab1 und lab2 ausgeben lassen, um zu sehen, welche Matrix-Elemente da wirklich benutzt werden.
ja, lab1 und lab2 haben jeweils den int 3, die 1 wird immer ins gleiche Feld der Matrix geschrieben.
Vielen Dank, ich versuche diesen Fehler zu beheben