Mit matrizen rechnen

Leuchtturm

Mitglied
Hallo, ich hab folgendes problem:

Ich habe eine Test Klasse geschrieben die eine Matrix beschreibt,
mit dieser soll jetzt in der Klasse Matrix gerechnet werden aber ich
weiß nicht wie ich das mit den get/set methoden und so machen soll.

So siehts momentan aus:

Test Klasse:

Java:
public class Test {
  public static void main(String[] a) {
    
    double matrix[][] = new double[3][3];
      matrix[0][0] = 1;
      matrix[0][1] = 2;
      matrix[0][2] = 3;
      matrix[1][0] = 4;
      matrix[1][1] = 5;
      matrix[1][2] = 6;    
    

  }
}

Matrix Klasse:

Java:
public class Matrix {
    
    private double[][] mat;
    private int zeilen, spalten;
    
    public Matrix(double[] [] mat){
        this.mat = mat;
        this.zeilen = mat.length;
        this.spalten = mat[0].length;
    }
    
    public void elemente(int i, int j, double e) {
        mat[i][j] = e;
    } 
}

Der Ansatz ist aber bestimmt vollkommen falsch :/.
 

function

Bekanntes Mitglied
sieht doch gut aus, die methode elemente setzt an einer bestimmten stellen (i,j) den wert e.

in der Test Klasse kannst du nun schrieben:
Matrix mat = new Matrix(matrix);
 
Zuletzt bearbeitet:

function

Bekanntes Mitglied
ne nicht anstatt sondern noch dazu...
ja mit der toString methode, die kommt halt in die Matrix Klasse, aber selber probieren macht schlau :p
 

nrg

Top Contributor
ich weiß nicht wieviel Sinn eine toString() Methode bei einer Matrix macht. du müsstest halt durch das 2D Array loopen und einen String mit allen Werten zusammensetzen. Es könnte auch eine Methode toStringArray() geben, die ein StringArray mit den Zeilen der Matrix zurückgibt aber am sinnvollsten ist für mich eine matrixPrint() Methode, die die Matrix ganz einfach in einem schönen Format auf der Console ausgibt.
grüße
nrg
 

Leuchtturm

Mitglied
Ich hab leider immer noch nicht richtig verstanden wie ich die Matrix in der Test Klasse erstellen muss um damit dann in der Matrix Klasse zu rechnen.

hab nun folgendes Probiert:

Test Klasse:

Java:
public class Test {
public static void main(String[] a) {
  
  
   
   double mat[][] = new double[1][1];
      mat[0][0] = 1;
      mat[0][1]=  2;

    System.out.println(mat);
 }
}

Matrix Klasse:

Java:
public class Matrix {
    
    public int[][] mat;
    private int zeilen, spalten;
    private int groesse;
    int determinante;
    
    public Matrix(int[][] matrix){
        this.mat = mat;
        this.zeilen = mat.length;
        this.spalten = mat[0].length;
    }
    
    //soll determinante Berechnen
   // noch nicht fertig
    public int det(int matrix[][]) {
        if(mat.length == 1) {
         determinante = mat[0][0];
         return determinante;
        }
        else if (mat.length > 1) {
         
        }
   
return determinante;
  }
}

Das problem is nur das ich nicht weiß in welcher Form die Matrix in der
Test Klasse angegebn werden muss damit ich später damit rechnen kann,
dasss funktioniert nicht so wie ich denke :(
 

function

Bekanntes Mitglied
Java:
public class Test {
public static void main(String[] a) {
  
  
   
   double mat[][] = new double[1][1];
      mat[0][0] = 1;
      mat[0][1]=  2;
      Matrix matrix = new Matrix(mat);  // <-- hier das Matrixobjekt
      matrix.det();
 }
}

deine methode det, ich denke das wird die determinante, muss keinen parameter haben, weil sie eine methode von matrix ist, oder du machst die methode static dann kannst du via Matrix.det(mat); darauf zugreifen.
 

Leuchtturm

Mitglied
sorry, dass hab ich nicht richtig verstanden!
Kannste das nochmal genauer erklären

so ungefähr??

Java:
 public int det(int[][] mat) {
        if(mat.length == 1) {
         determinante = mat[0][0];
         return determinante;
        }
        else if (mat.length > 1) {
         
        }
   
return determinante;
  }

wollte ändern drücken
 

function

Bekanntes Mitglied
ok ich etwas ausführlicher ;)

Java:
// In deiner Test Klasse
public static void main(String[] args) {
  double mat[][] = new double [2][2];    // hier stellst du ja dein matrix array bereit. (2x2 Matrix)
  
  // Matrixfelder belegen:
  mat[0][0] = 1;
  mat[0][1] = 2;
  mat[1][0] = 3;
  mat[1][1] = 4;

  // Ein Matrixobjekt erzeugen
  Matrix matrix = new Matrix(mat);  // Erzeugt ein Objekt deiner Klasse Matrix, ruft den Konstruktor Matrix(double[][] mat) auf.

  // Aufruf einer Methode der Klasse Matrix:
  matrix.det();
}

Java:
// In deiner Klasse Matrix
public int det() {
  // hier hast du nun zugriff auf alle variablen, der Klasse Matrix. Weil ein Objekt von Matrix erzeugt wurde und dadurch auch dein internes Array mat gesetzt wurde kannst du damit arbeiten.
...
}

eine Alternative wäre:
Java:
// in deiner Klasse Matrix
public static int det(double[][] mat) {
  // Hier wird nun ein 2D Array übergeben und du kannst diesen inhalt verwenden
}
dann ist der aufruf in deiner Test Klasse allerdings:
Java:
// in deiner Test Klasse in der main-Methode:
  double mat[][] = new double [2][2];    // hier stellst du ja dein matrix array bereit. (2x2 Matrix)
  
  // Matrixfelder belegen:
  mat[0][0] = 1;
  mat[0][1] = 2;
  mat[1][0] = 3;
  mat[1][1] = 4;

  // Aufruf der determinaten Funktion:
  Matrix.det(mat);  // Aufruf der Methode det ohne ein Objekt von Matrix erzeugt zu haben.

hoffe konnte es dir verständlich machen.
 

Leuchtturm

Mitglied
Ich bekomm da aber kein Ergebnis raus :( also erstmal nur mit na 1*1 matrix

Java:
 public int det() {
        if(mat.length == 1) {
         determinante = mat; // was muss ich denn hier zurückgeben um ein ergebnis zu bekommen??
         return determinante;
        }
        else if (mat.length > 1) {
         
        }
 

function

Bekanntes Mitglied
ah ok, das gilt aber nur für:

double[][] mat = new double[1][1];

Java:
public double det() {
  return mat[0][0];   // dann wird der double wert des einzigen wertes des array zurückgegeben.
}
 

Leuchtturm

Mitglied
So habs jetzt hinbekommen dass ich auch mit einer 2x2 Matrix rechnen kann.
Aber auch nur einer! kann man das auch machen das mehrere hintereinander berechnet werden?

Java:
public class Matrix {
    
    public int[][] mat;
    int determinante = 0;
    
    public Matrix(int[][]mat){
        this.mat = mat;
    }
    
 
    public int det() {
        if(mat.length == 1) {
         determinante = mat[0][0];
         System.out.println(determinante);
        }
        if(mat.length == 2) {
          determinante = mat[0][0] * mat[1][1] - mat[0][1] * mat[1][0];
          System.out.println(determinante); 
        }       
        return  determinante;
    } 
}

Java:
public class Test {
public static void main(String[] a) {
  
   int mat[][] = new int[2][2];
      mat[0][0] = 1;
      mat[0][1] = 5;
    
      mat[1][0] = 1;
      mat[1][1] = 8;
   
     Matrix matrix = new Matrix(mat); 
     matrix.det();
 }
}

ist das sonst soweit ok?
 

Leuchtturm

Mitglied
Inwiefern mit mehreren hintereinander? du kannst ja jede beliegige matrix eingeben...


Wenn ich zum Bsp:

Java:
ublic static void main(String[] a) {
  
  
   
   int mat[][] = new int[2][2];
      mat[0][0] = 1;
      mat[0][1] = 5;
    
      mat[1][0] = 1;
      mat[1][1] = 8;
 
    
     Matrix matrix = new Matrix(mat); 
     matrix.det();
      
      int mat[][] = new int[2][2];
      mat[0][0] = 2;
      mat[0][1] = 5;
    
      mat[1][0] = 1;
      mat[1][1] = 8;
 
    
     Matrix matrix = new Matrix(mat); 
     matrix.det();
 }
}

schreibe.
Kommt Fehler:
mat is already defined in main(java.lang.String[])

Muss ich bestimmt irgendwas umbennen wa?

naja sonst isses okay für heute

VIelen DanK soweit :toll:
 

nrg

Top Contributor
naja das sollte klar sein.

Java:
int i = 1;
int i = 2;

geht halt net...

du kannst keine zwei Variablen mit dem gleichen Namen deklarieren.

du kannst einer Variable aber einen neuen wert zuweißen (falls primitiv) oder in deinem fall neu referenzieren.

Java:
int mat[][] = new int[2][2];
 .....
mat = new int[2][2];

oder du lässt das Zweite
Java:
int mat[][] = new int[2][2];
einfach ganz weg :)

das sollte deinen Fehler erstmal beheben ;)

edit: die Namen, die du deinen 2 Objekten von deiner Matrixklasse gibts sind auch gleich. Diese solltest du allerdings nicht neu referenzieren (sonst ist dein erstes Objekt ein Fall für den gc) sondern deiner zweiten Referenzvariable einen anderen Namen geben (in deinem Fall z.B. matrix2)

grüße
nrg
 
Zuletzt bearbeitet:

Leuchtturm

Mitglied
So, hab das jetzt alles recht Gut hinbekommen :)
nur an der toString Methode haperts noch :(

Könnt ihr mir vllt. nen tipp geben wie ich das
am besten anstellen kann damit die Matrix
schön auf der Konsole ausgegebn wird.
so z.bsp:

1 1 1 2
2 2 2 2
1 2 2 2
 

Lirave

Aktives Mitglied
Java:
	 public static void disp(int[][] Feld){
		 System.out.println(" ");
		 for(int i=0;i<Feld.length;i++){
			 for(int j=0;j<Feld[i].length;j++){
				 System.out.print(Feld[i][j]);
				 System.out.print(" ");
				 
			 }
			 System.out.println("");
		 }
	 }
 
A

Akimbo

Gast
ich kenne zwar deinen aktuellen quellcode nicht, aber da du ja mit dem 2d array arbeitest kannst du für die ausgabe einfach 2 for-schleifen verwenden.
hierbei zählt die äußere for-schleife die zeile, die inner die spalte. wenn die innere schleife einmal durchgelaufen ist, wird dann die äußere die zeile um eine stelle weiter nach unten rücken, die innere daraufhin wieder spalte pro spalte die zahlen eintragen.

Java:
for(i=0;i<=3;i++) {
  for(p=0;p<=3;p++) {
    System.out.print(array[i][p] + " ");
  }
  System.out.println();
}

ich hoffe ich habe mich nicht vertan, welche klammer beim 2d array für zeile und welche für spalte steht, ansonsten bei der ausgabe einfach und [p] vertauschen ;)

kannst ja deine aktuelle version nochmal posten.

mfg, dranke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S 2D Array Matrizen Java Basics - Anfänger-Themen 7
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
H Erste Schritte Determinantenberechnung von Matrizen Java Basics - Anfänger-Themen 1
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
R Matrizen nebeneinander ausgeben. Java Basics - Anfänger-Themen 1
B Matrizen Operationen Java Basics - Anfänger-Themen 7
S Bearbeitung von Matrizen Java Basics - Anfänger-Themen 14
A Matrizen aufgabe Java Basics - Anfänger-Themen 46
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
L Matrizen aufteilen Java Basics - Anfänger-Themen 3
P Matrizen zusammenfügen Java Basics - Anfänger-Themen 8
M Array Matrizen, int[][] Java Basics - Anfänger-Themen 5
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
J Matrizen Java Basics - Anfänger-Themen 10
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
C große Matrizen, Performance, (Pointer?) Java Basics - Anfänger-Themen 6
M Speichern von Matrizen in Maps günstiger als in Arrays? Java Basics - Anfänger-Themen 22
J Einlesen von Werten in zwei Matrizen Java Basics - Anfänger-Themen 4
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
M Matrizen zeilenweise einlesen (Größe unbekannt) Java Basics - Anfänger-Themen 4
S ? Matrix / Matrizen ? Java Basics - Anfänger-Themen 32
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
Zeppi Geteilt rechnen Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
L Datentypen Rechnen und abrunden mit double Java Basics - Anfänger-Themen 7
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
S Rechnen mit MaxValue Java Basics - Anfänger-Themen 7
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
W Seltames Problem bei Rechnen mit BigIntegers Java Basics - Anfänger-Themen 2
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
S Dezimalzahlen rechnen Java Basics - Anfänger-Themen 3
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
1 Mit Java Rechnen Java Basics - Anfänger-Themen 10
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
W Variablen float rundet beim Bruch rechnen Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
J Char-Rechnen Java Basics - Anfänger-Themen 8
A Rechnen mit Set/Get? Java Basics - Anfänger-Themen 2
Z Erste Schritte Instanzmethoden Rechnen (Bruch) Java Basics - Anfänger-Themen 18
M Mit Werten aus Arrays in anderen Methoden rechnen? Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
D Erste Schritte Rechnen mit Brüchen Java Basics - Anfänger-Themen 13
D rechnen mit Stunden und Minuten Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
W Variablen Rechnen mit "char" Java Basics - Anfänger-Themen 2
Joew0815 Compiler-Fehler Unexpected Type - Problem mit Variablen rechnen Java Basics - Anfänger-Themen 7
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
C Mit Potenzen rechnen "Problem" Java Basics - Anfänger-Themen 3
M Mit Array rechnen Java Basics - Anfänger-Themen 9
T Rechnen in Arrays Java Basics - Anfänger-Themen 11
B von Ergebniss weiter rechnen Java Basics - Anfänger-Themen 3
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
N Mit long rechnen Java Basics - Anfänger-Themen 2
K Übungsblatt 13 Aufgabe 6 (Rechnen) Java Basics - Anfänger-Themen 12
C Mit Gleitkommazahlen rechnen Java Basics - Anfänger-Themen 20
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
W Mit (char) rechnen Java Basics - Anfänger-Themen 3
F Mit Arrays rechnen Java Basics - Anfänger-Themen 12
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
B mit benutzereingaben rechnen Java Basics - Anfänger-Themen 4
L Bruch rechnen Java Basics - Anfänger-Themen 29
B mit Datum rechnen Java Basics - Anfänger-Themen 10
D Rechnen mit int Array Java Basics - Anfänger-Themen 9
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
T mit Winkel & Sinus rechnen / sin(30°)=2,5 Java Basics - Anfänger-Themen 7
A Rechnen mit big integer Java Basics - Anfänger-Themen 29
W Probleme mit double rechnen Java Basics - Anfänger-Themen 4
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
K mit einer int rechnen Java Basics - Anfänger-Themen 10
M Warum -48 rechnen? Java Basics - Anfänger-Themen 3
K Java Code rechnen Java Basics - Anfänger-Themen 7
F Rechnen mit komplexen Zahlen Java Basics - Anfänger-Themen 23
C Datentypen Unklarheiten beim Rechnen Java Basics - Anfänger-Themen 5
W Modulo rechnen Java Basics - Anfänger-Themen 3
H Datentypen Rechnen und Runden Java Basics - Anfänger-Themen 2
S Rechnen mit Zeitangaben Java Basics - Anfänger-Themen 5
Binary.Coder Doppeltes Hashing verläuft in "Endlosscheife" beim rechnen per Hand Java Basics - Anfänger-Themen 8
F Mit Anzahl Startparametern rechnen Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben