Matrix Aufgabe

M

mamir00

Mitglied
HI
Ich hab ein aufgabe ,die ich es bis morgen fertig machen soll aber leider irgendwie komme ich es nicht so gut klar wie soll ich der befehl getrow schreiben .
7 // gibt die Anzahl der Zeilen zurueck
8 public static int getNRows(Matrix a){

}
9
10 // gibt die Anzahl der Spalten zurueck
11 public static int getNColumns(Matrix a)
12
was ist der befehl ?kann jemand mir damit mir helfen ?

danke
 
krgewb

krgewb

Top Contributor
Bitte immer in code-Tags posten.
Java:
// gibt die Anzahl der Zeilen zurueck
public static int getNRows(Matrix a) {
  
}

// gibt die Anzahl der Spalten zurueck
public static int getNColumns(Matrix a) {

}
 
F

fhoffmann

Top Contributor
Das können wir nicht beantworten, solange wir nicht wissen, wie die Klasse Matrix aussieht.
 
C

coffeebean

Mitglied
Also mit
Java:
System.out.println()
kannst du etwas ausgeben und mit
Java:
length
bekommst du die Länge von nem Array. Falls das deine Frage war.
Kannst du ansonsten etwa weiter ausführen, wie fhoffmann bereits gesagt hat?
 
M

mamir00

Mitglied
Also mit
Java:
System.out.println()
kannst du etwas ausgeben und mit
Java:
length
bekommst du die Länge von nem Array. Falls das deine Frage war.
Kannst du ansonsten etwa weiter ausführen, wie fhoffmann bereits gesagt hat?
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){
    for(int i=0; i<rows;i++){
        for(int j=0; j<columns;j++){
        twoD[i][j]=sc.nextInt();
        }
    }
            
}

 // gibt die Anzahl der Zeilen zurueck
 public static int getNRows(Matrix a){
    int rows=x.length;
    return(rows);
}

 // gibt die Anzahl der Spalten zurueck
 public static int getNColumns(Matrix a){
    int columns=x[0].length;
    return(columns) ;
}


 // gibt die Matrix aus
 public static void print(Matrix a){
    
    System.out.print(x[i][j]+"   ");
}
System.out.println();
}
System.out.println("----------------");
}

 // 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){
    static double ip (double [][] a, double [][] b, int zeile, int spalte){
        double ip=0;
        
        ip = a[zeile][0]*b[0][spalte]+a[zeile][1]*b[1][spalte]+a[zeile][2]*b[2][spalte];
        
        return(ip);
    }
    
        
        for(int i=0;i<l;i++){
            for (int j=0;j<n;j++){
                c[i][j] = ip(a,b,i,j);
            }
            
        }
        
    
}

 // berechnet die Determinante einer 3x3 Matrix
 public static double det(Matrix a){
    x=(matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1]));

    y=(matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]));
    
    z=(matrix[0][2] * (matrix[1][0] * matrix[2][1]- matrix[1][1] * matrix[2][0]));
    
    det(Matrix a)= x - y + z;
 }

 // berechnet die Transponierte einer NxN Matrix
 public static Matrix transpose(Matrix a){
    Matrix a = new Matrix(N, M);
    for (int i = 0; i < M; i++)
        for (int j = 0; j < N; j++)
            A.data[j][i] = in.data[i][j];
    return a;
}


 // berechnet die Untermatrix, in dem Zeile exclRow und Spalte exclCol entfernt
//wurden
 public static Matrix subMatrix(Matrix a, int exclRow, int exclCol){


 }

 // berechnet die Adjungierte einer 3x3 Matrix
 public static Matrix adjoint(Matrix a)

 // berechnet die Inverse einer 3x3 Matrix
 public static Matrix inverse(Matrix a){
    int i, j;
    float det = 0;
    float mat[][] = new float[3][3];
    
    Scanner sc = new Scanner(System.in);
    
    System.out.println("Enter elements of matrix row wise:");
    for(i = 0; i < 3; ++i)
        for(j = 0; j < 3; ++j)
            mat[i][j] = sc.nextFloat();
    
    for(i = 0; i < 3; i++)
        det = det + (mat[0][i] * (mat[1][(i+1)%3] * mat[2][(i+2)%3] - mat[1][(i+2)%3] * mat[2][(i+1)%3]));
    
    System.out.println("\ndeterminant = " + det);
            
    System.out.println("\nInverse of matrix is:");
    for(i = 0; i < 3; ++i) {
        for(j = 0; j < 3; ++j)
            System.out.print((((mat[(j+1)%3][(i+1)%3] * mat[(j+2)%3][(i+2)%3]) - (mat[(j+1)%3][(i+2)%3] * mat[(j+2)%3][(i+1)%3]))/ det) + " ");
        
        System.out.print("\n");
    }
}
}
 }
}
ich bin jetzt so weit .mein frage ist jetzt wie kann ich untermatrix berechnen ?
 
C

coffeebean

Mitglied
Du kannst die Werte mit einer Schleife übernehmen und mit einer if Abrage und continue die zu exkludierenden überspringen.
 
Kirby.exe

Kirby.exe

Top Contributor
Deine Init Methode wird so nicht compilieren, da die Variable twoD nicht existiert
 
Kirby.exe

Kirby.exe

Top Contributor
ich soll (berechnet die Untermatrix, in dem Zeile exclRow und Spalte exclCol entfernt wurden)
public static Matrix subMatrix(Matrix a, int exclRow, int exclCol)
.....machen .😭
Wenn du nur eine Zeile und eine Spalte entfernen sollst, dann ist das recht simpel :) nun stellt sich nur die Frage:

sollst du die matrix speichern oder nur diese zeile und spalte ausgeben?
 
Kirby.exe

Kirby.exe

Top Contributor
In dem Arbeitsblatt steht alles nur keine Aufgabe, wo man eine Zeile und Spalte entfernen soll
 
Kirby.exe

Kirby.exe

Top Contributor
ich soll es speichern denke ich .
Dann musst du eine neue Matrix erstellen. Sprich das interne array muss um eine zeile und um eine spalte verkürzt werden ;)

Nun iterierst du mit zwei geschachtelten Schleifen über dein Array und musst prüfen ob du dich in der zu löschenden Zeile oder zu löschende Spalte befindest und musst hier zur nächsten Iteration springen mit einem continue ;)
 
Anzeige

Neue Themen


Oben