Hallo,
wie ihr dem Titel entnehmen könnt gehts um Mehrdimensionale Arrays in der Anwendung für s Arbeiten mit Matrizen. Mein aktueller Stand ist das :
Aufgabe lautet wie folgt : Also es soll eine nxn Matrix modelliert, werden welche die Addition und Multiplikation beherrscht, sowie eine Matrix darstellen kann.
"
Die Matrix-Vektor-Multiplikation multipliziert dabei eine n x n Matrix mit einem Spaltenvektor.Ein Spaltenvektor entspricht einer n x 1 Matrix.
Erstellen Sie dafür eine Klasse MathMatrix, die die oben genannten Operationen implementiert. In der Matrix-Klasse soll keine Ein- oder Ausgabe stattfinden. Implementieren Sie stattdessen für die Darstellung eine toString ()-Methode, die sie auch für der Operation show verwenden können. Achten Sie darauf, dass die Operation show eine textuelle Repräsentation zurückgibt. Die Matrix wird als durch Zeilenumbrüche separierte Zeilen dargestellt. Jede Zeile besteht aus durch jeweils ein Leerzeichen separierte 32-Bit-Ganzzahl. Die Matrix wird mithilfe eines öffentlichen Konstruktors MathMatrix ( int [][] matrix ) erstellt.
1. Versteh ich es richtig, dass in den Konstruktor eine Matrix gegeben wird, sodass die beiden Rechenoperationen in der Methode nur einen Parameter, also eine Matrix, mitgegeben bekommen? Wie ihr oben seht, hatte ich zuerst 2 Matrizen als Parameter in den Methoden, weil ich den Part in der Aufgabe mit dem Konstruktor überlesen hatte xD
2. Wie zur Hölle geht die toString Methode, denn ohne die, kann ich gar nichts testen . Ich hab oben im code etwas versucht, aber das stimmt sicherlich nicht. Wie die to String Ausgabe auszusehen hat, steht in der Aufgabe, aber ich weiß nicht wie ich das umsetzen soll. Ich weiß zwar, dass matrix.lenght die Zeile ist und matrix[0].length die Spalte darstellt. Aber ich weiß nicht, wie ich das in der toString Methode packe, sodass ich diese richtig überschreibe
3. Ich seh jetzt erst, dass bei der Multiplikation stets von einem Spaltenvektor als 2. Matrize ausgegangen wird, aber mein code dazu oben sollte trotzdem passen oder ?
Edit : Die to String Methode habe ich inzwischen, aber ich glaube ich verstehe die Aufgabe falsch. Die Parameter meiner Rechnungen muss meine Matrix klasse sein bzw ein Objekt davon statt wie ich es habe mit int [][] oder ?
wie ihr dem Titel entnehmen könnt gehts um Mehrdimensionale Arrays in der Anwendung für s Arbeiten mit Matrizen. Mein aktueller Stand ist das :
Code:
public class MathMatrix {
int[][] matrix;
public MathMatrix(int[][] matrix) {
this.matrix = matrix;
}
Die folgende Methode hat funktioniert, aber ich hab die Aufgabe nicht gründlich gelesen -.-
/*public int[][] add(int[][] firstMatrix, int[][] secondMatrix) {
matrix = new int[firstMatrix.length][firstMatrix[0].length];
for (int i = 0; i < firstMatrix.length; i++) {
for (int j = 0; j < firstMatrix[i].length; j++) {
matrix[i][j] = firstMatrix[i][j] + secondMatrix[i][j];
}
}
return matrix;
}*/
// diese add methode weiß ich nicht, ob sie klappt
public void add(int[][] secondMatrix) {
matrix = new int[matrix.length][matrix[0].length];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = matrix[i][j] + secondMatrix[i][j];
}
}
//return matrix;
}
// ebenso nicht getestet, da mir die toString methode Kopfschmerzen macht
public int[][] multiply(int[][] firstMatrix, int[][] secondMatrix) {
int[][] matrix = new int[firstMatrix.length][secondMatrix[0].length];
for (int i = 0; i < firstMatrix.length; i++) {
for (int j = 0; j < secondMatrix[0].length; j++) {
for (int k = 0; k < firstMatrix[0].length; k++) {
matrix[i][j] += firstMatrix[i][k] * secondMatrix[k][j];
}
}
}
return matrix;
}
Keine Ahnung was ich hier mache
public String toString() {
String s = "";
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
s = String.format("%s ", matrix[i][j]);
}
}
return s;
}
Aufgabe lautet wie folgt : Also es soll eine nxn Matrix modelliert, werden welche die Addition und Multiplikation beherrscht, sowie eine Matrix darstellen kann.
"
Die Matrix-Vektor-Multiplikation multipliziert dabei eine n x n Matrix mit einem Spaltenvektor.Ein Spaltenvektor entspricht einer n x 1 Matrix.
Erstellen Sie dafür eine Klasse MathMatrix, die die oben genannten Operationen implementiert. In der Matrix-Klasse soll keine Ein- oder Ausgabe stattfinden. Implementieren Sie stattdessen für die Darstellung eine toString ()-Methode, die sie auch für der Operation show verwenden können. Achten Sie darauf, dass die Operation show eine textuelle Repräsentation zurückgibt. Die Matrix wird als durch Zeilenumbrüche separierte Zeilen dargestellt. Jede Zeile besteht aus durch jeweils ein Leerzeichen separierte 32-Bit-Ganzzahl. Die Matrix wird mithilfe eines öffentlichen Konstruktors MathMatrix ( int [][] matrix ) erstellt.
1. Versteh ich es richtig, dass in den Konstruktor eine Matrix gegeben wird, sodass die beiden Rechenoperationen in der Methode nur einen Parameter, also eine Matrix, mitgegeben bekommen? Wie ihr oben seht, hatte ich zuerst 2 Matrizen als Parameter in den Methoden, weil ich den Part in der Aufgabe mit dem Konstruktor überlesen hatte xD
2. Wie zur Hölle geht die toString Methode, denn ohne die, kann ich gar nichts testen . Ich hab oben im code etwas versucht, aber das stimmt sicherlich nicht. Wie die to String Ausgabe auszusehen hat, steht in der Aufgabe, aber ich weiß nicht wie ich das umsetzen soll. Ich weiß zwar, dass matrix.lenght die Zeile ist und matrix[0].length die Spalte darstellt. Aber ich weiß nicht, wie ich das in der toString Methode packe, sodass ich diese richtig überschreibe
3. Ich seh jetzt erst, dass bei der Multiplikation stets von einem Spaltenvektor als 2. Matrize ausgegangen wird, aber mein code dazu oben sollte trotzdem passen oder ?
Edit : Die to String Methode habe ich inzwischen, aber ich glaube ich verstehe die Aufgabe falsch. Die Parameter meiner Rechnungen muss meine Matrix klasse sein bzw ein Objekt davon statt wie ich es habe mit int [][] oder ?
Zuletzt bearbeitet: