Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.?

Hallo liebes Forum, und zwar komme ich bei der Aufgabe nicht weiter, eine Methode zu schreiben die überprüft ob eine Matrix eine Diagonalmatrix ist.

Ich habe schon folgenden Code geschrieben, der aber leider nicht funktioniert

Ich hatte mir das dabei so vorgestellt:

x1,1 x1,2 x1,3
x2,1 x2,2 x2,3
x3,1 x3,2 x3,3

usw..

also dass wenn i = j ist, quasi 11, 22, 33 der dann True ausgibt
naja das funktioniert nicht, ein ganz anderes problem ist, dass ich nicht weiß wie ich es mit dem rest mache, die ja alles 0en sein müssen,..

Wäre über ne Hilfe freuen


Java:
 public boolean isDiagonal(int[][] matrix) {
for (int i =0; i>matrix.length; i++);
for (int j =0; j>matrix.length; j++);{
int i;
int j;

if (i != j) & (i != 0)
return false;

}

return true;
}
}
 
du schaust dir die Matrix-Werte gar nicht an, nur die Indexe i,j,
hilft dir bereits diese Erkenntnis?

das
return true;
steht bei dir in der Schleife, nach i==0 ist damit garantiert Schluss, wieso überhaupt eine Schleife für i?
alles handwerklich direkt zu erkennen,
edit: ok, doch nicht wegen deinen sparsamen Klammern 😉 + noch sparsamerer Formatierung
 
Zuletzt bearbeitet von einem Moderator:
Java:
public boolean isDiag(int[][] aMatrix) {
        // Hier noch prüfen ob es sich um eine quadratische Matrix handelt
        for (int i = 0; i < aMatrix.length; i++) {
            for (int j = 0; j < aMatrix.length; j++) {
                // Diagonale auf Null prüfen
                if (i == j) {
                    // Wenn Null, dann ist es keine Diagonalmatrix
                    if (aMatrix[i][j] == 0) {
                        return false;
                    }
                } 
                // Wenn restliche Positionen ungleich Null, dann ists auch keine Diagonalmatrix
                else if (aMatrix[i][j] != 0) {
                    return false;
                }
            }
        }
        // Es ist einer Diagonalmatrix
        return true;
    }

Versuch mal die Methode.
 

Zurück
Oben