PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Matrix wieder in double [][] umwandeln



Katya
30-12-2006, 15:57
Hallo,
Wenn ich eine Matrix, die aus einem zweidimensionalen Array erstellt wurde,
Code:


public Matrix(double [][] matrixx){
matrix = matrixx;
}



mit zwei for-Schleifen durchlaufen will, schimpft der Compiler das ich es nur mit dem Datentyp Array machen darf. Wenn ich nun die Matrix wieder in ein eindimensionales Array umwandeln will mit:
Code:


array = (double[][])b;


Schimpft der Compiler wieder mit der Meldung 'cannot cast from Matrix to double[][]'
Was könnte ich dagegen tun? Das ganze brauche ich für die Methode, zwei Matrizen multiplizieren soll und heißt:
Code:

public Matrix mult(Matrix b)


und sie soll mit
Code:

matrix1.mult(matrix2);


aufgerufen werden.

Danke für die Antworten

mehlvogel
30-12-2006, 17:26
Naja, wie soll er denn ein Objekt Matrix in ein double[][] umwandeln?

Es gibt aber durchaus mehrere Möglichkeiten:
- getArray() auf Matrix definieren, die ein passendes Array zurückgibt.
- get(int x, int y) definieren, das den double Wert aus Zeile x und Spalte y zurückgibt und mit zwei konventionellen for-Schleifen einfach drüber iterieren.
- Matrix das Interface "Iterable<T>" implementieren lassen (und dadurch evtl. einen passenden Iterator). Dann solltest du die Matrix auch in den neuen for-Schleifen verwenden können.