eigene Matrixklasse < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Hallo
Ich experimentiere grad ein wenig mit Java. Normalerweise benutze ich Python (für ein Ingenieurstudium sehr Praktisch).
Ich wollte mir nun mit Java eine einfache Matrix-Klasse schreiben die grundlegende lineare Alegebra implementieren soll. Der konstruktor sollte möglichst etwa so aufgerufen werden können:
public class Versuchslabor {
public static void main(String[] args) {
Matrix A = new Matrix({2.2,3.3},{3.3,2.2});
}
}
Mein Versuch das Umzusetzen ha leider nicht funktioniert ( Wie gesagt ich kenn mich nicht wirklich mit Java aus). Ich hab folgendes probiert:
public class Matrix {
double[][] A; //Koeffizientenmatrix
public Matrix(double[][] matrix){
this.A = matrix;
}
}
Meine Frage dazu ist also:
Wie macht mans Richtig ?
Ich Vermute die Antwort liegt irgendwo bei generischen Datentypen oder Wrapper-Klasen. Da hab ich aber leider noch nicht so Richtig Ahnung von. Ich würde mich sehr über anschaulich erklärten Beispielcode freuen.
vielen Dank im voraus,
Gruß Beebelbrox!
|
|
|
|
Hi!
Sieh dir das mal an.
http://introcs.cs.princeton.edu/java/95linear/Matrix.java.html
Valerie
|
|
|
|
|
Das wäre auf die Art erstmal in Ordnung. Mir wäre es aber lieber wenn man die Matrix schon im Konstruktor mit Werten initialisieren könnte (wie es auch mit Arrays geht).
Meine erste Idee dazu war die Matrixklasse von der Klasse Array abzuleiten. Ich hab aber nicht rausgefunden wie, bzw ob das überhaupt geht. Falls da jemand nen Hinweis für mich hat wäre ich sehr Dankbar.
Trotzdem erstmal vielen Dank für den Link! Damit kann ich auch erstmal leben.
|
|
|
|
|
Hi!
> Das wäre auf die Art erstmal in Ordnung. Mir wäre es aber
> lieber wenn man die Matrix schon im Konstruktor mit Werten
> initialisieren könnte (wie es auch mit Arrays geht).
Es sind zwei Konstruktoren vorhanden. Beim zweiten könntest du dir ein zwei dimensionales Array erstellen und mit Werten füllen. Dieses müsstet du dann in den Konstruktor geben. Aus dem 2D Array wird eine Matrix erzeugt.
Deine Idee wird meiner Ansicht nach nicht umsetzbar sein.
Valerie
|
|
|
|
|
Hallo Beebelbrox,
Du könntest es natürlich so machen:
Matrix D = new Matrix(new double[][]{{ 1, 2, 3 }, { 4, 5, 6 }});
Gruß
Anna
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:51 Mi 29.05.2013 | Autor: | Beebelbrox |
So mache ich das tatsächlich auch.
Ich finde es wirkt aber trotzdem etwas klobig wegen dem doppelten "new-assignment"
Bin halt von Python mehr Freiheit gewohnt, was nicht heißen soll, dass Java nicht auch seine Vorzüge hat!
Wie gesagt, ich kann mit dieser Lösung leben. Das Problem kann also als gelöst betrachtet werden
|
|
|
|