Matrix Multiplikation

f61

Grünschnabel
Hallo,
Ich habe die Aufgabe zwei Matrizen miteinander zu multiplizieren und habe meine Probleme bei der Initialisierung der Matrix und bei den For-Schleifen für die Zeilen und Spalten. Ich würde mich über Ratschläge freuen.









Java:
public class Matrix{
  double[][] array;
        
  // initalisiert Matrix mit row Zeilen und colum Spalten. Alle Werte werden auf 0 initalisiert.
  public static void init(Matrix a, int row, int column){
    double [][] Matrix;
    Matrix= new double [row][column];
   }
 // gibt die Anzahl der Zeilen zurueck
  public static int getNRows(Matrix a){
   for (int row=0;row<Matrix.length;row++){
     return row;
   }

  }
 // gibt die Anzahl der Spalten zurueck
  public static int getNColumns(Matrix a){
    for (int column=0;column<Matrix.length;column++){
    return column;
    }
  }
 
// gibt die Matrix aus
public static void print(Matrix a){
 
// multipliziert Matrix A(NxM) mit Matrix B(QxR). Wenn M ungleich Q ist, wird eine Fehlermeldung ausgegeben.
public static Matrix mult(Matrix a, Matrix b)
 public static void main(String[] args) {


}


}
 
Moin,

was mir so spontan auffällt:

Java:
public static int getNRows( Matrix a )
{
   for( int row = 0; row < Matrix.length; row++ )
   {
       return row;
   }
}

Das kann so nicht klappen!
Mit dem return im ersten Schleifendurchlauf wird die Methode verlassen!
Du wirst da also nie n-mal durchlaufen, sondern immer nur einmal!!

Zudem: was soll denn dabei rauskommen, wenn nicht die Werte von row und column, die Du bei init übergibst ??

VG Klaus
 
Moin,

was mir so spontan auffällt:

Java:
public static int getNRows( Matrix a )
{
   for( int row = 0; row < Matrix.length; row++ )
   {
       return row;
   }
}

Das kann so nicht klappen!
Mit dem return im ersten Schleifendurchlauf wird die Methode verlassen!
Du wirst da also nie n-mal durchlaufen, sondern immer nur einmal!!

Zudem: was soll denn dabei rauskommen, wenn nicht die Werte von row und column, die Du bei init übergibst ??

VG Klaus
Hallo,
ich habe jetzt alles soweit korrigiert.
Vielen Dank für den Tipp.
VG
 

Neue Beiträge

Zurück