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 liebes Forum,
ich habe eine Aufgabe bekommen, in der eine Methode zu entwickeln ist, die aus einer gegebenen Matrix die Transponierte Matrix zurück gibt.
Folgende Lösung ist zum Sachverhalt gegeben:
Java:
public static int[][] getTransposedMatrix(int[][] m) {
try {
for(int t = 0; t < m.length -1 ; t++){
if(m[t].length != m[t+1].length){
return null;
}
}
if (m.length == 0 || m[0].length == 0) {
return null;
}
int[][] myMatrix = new int[m[0].length][m.length];
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
myMatrix[j][i] = m[i][j];
}
}
return myMatrix;
}
catch (NullPointerException e) {
return null;
}
}
Ich verstehe hier mehrere Sachen nicht.
Frage1.
Was genau ist m.length und was ist m[0].length ?
Frage2.
int[][] myMatrix = new int[m[0].length][m.length];
Wird hier nur ein neues zweidimensionales Array erzeugt, dessen Zeilen und Spaltenlänge gleich dem übergebenen ist oder wurden alle Werte auch übernommen?
Frage3.
Ich verstehe grundsätzlich nicht, wieso in der ersten Forschleife geprüft wird, dass wenn m[t].length ungleich m[t+1].length ist, eine Null returned wird.
zu 1.) m.length gibt die Anzahl der zeilen, m[0].length gibt die Anzahl der Spalten in deer 0.ten Zeile
zu 2.) Ja es wird nur eine neue Matrix erzeugt, die Werte werden nicht kopiert
zu 3.) die Spalten in den einzelnen Zeilen könnten durchaus unterschiedlich sein, das geht in Java
Edit: vielleicht noch zwei Anmerkungen
zu 2.) es wird eine neue Matrix erzeugt deren Zeilenlänge der Spaltenlänge der alten Matrix entspricht und umgekehrt.
zu 3.) Es wird in dem Fall null zurückgeliefert weil man eine Matrix mit unterschiedlicher Spaltenzahl in den einzelnen Zeilen nicht transponieren kann
zu 1.) m.length gibt die Anzahl der zeilen, m[0].length gibt die Anzahl der Spalten in deer 0.ten Zeile
zu 2.) Ja es wird nur eine neue Matrix erzeugt, die Werte werden nicht kopiert
zu 3.) die Spalten in den einzelnen Zeilen könnten durchaus unterschiedlich sein, das geht in Java
Edit: vielleicht noch zwei Anmerkungen
zu 2.) es wird eine neue Matrix erzeugt deren Zeilenlänge der Spaltenlänge der alten Matrix entspricht und umgekehrt.
zu 3.) Es wird in dem Fall null zurückgeliefert weil man eine Matrix mit unterschiedlicher Spaltenzahl in den einzelnen Zeilen nicht transponieren kann