# Matrix Aufgabe



## mamir00 (13. Jan 2021)

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 (13. Jan 2021)

Bitte immer in code-Tags posten.

```
// gibt die Anzahl der Zeilen zurueck
public static int getNRows(Matrix a) {
  
}

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

}
```


----------



## fhoffmann (13. Jan 2021)

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


----------



## coffeebean (13. Jan 2021)

Also mit 
	
	
	
	





```
System.out.println()
```
 kannst du etwas ausgeben und mit 
	
	
	
	





```
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?


----------



## mamir00 (13. Jan 2021)

coffeebean hat gesagt.:


> Also mit
> 
> 
> 
> ...




```
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 ?


----------



## coffeebean (13. Jan 2021)

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


----------



## Kirby.exe (13. Jan 2021)

Deine Init Methode wird so nicht compilieren, da die Variable twoD nicht existiert


----------



## mamir00 (13. Jan 2021)

coffeebean hat gesagt.:


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


kannst du es mir der code schrieben ?ich verstehe halt nicht was soll ihc es hier machen .


----------



## Kirby.exe (13. Jan 2021)

mamir00 hat gesagt.:


> kannst du es mir der code schrieben ?ich verstehe halt nicht was soll ihc es hier machen .


Was genau möchtest du denn machen? Welchen Teil einer Matrix möchtest du extrahieren?


----------



## mamir00 (13. Jan 2021)

Kirby_Sike hat gesagt.:


> Was genau möchtest du denn machen? Welchen Teil einer Matrix möchtest du extrahieren?


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 .😭


----------



## mamir00 (13. Jan 2021)

mamir00 hat gesagt.:


> 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 .😭


das ist mein Aufgabe .


----------



## Kirby.exe (13. Jan 2021)

mamir00 hat gesagt.:


> 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?


----------



## mamir00 (13. Jan 2021)

Kirby_Sike hat gesagt.:


> 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?


ich soll es speichern denke ich .


----------



## Kirby.exe (13. Jan 2021)

In dem Arbeitsblatt steht alles nur keine Aufgabe, wo man eine Zeile und Spalte entfernen soll


----------



## mamir00 (13. Jan 2021)

Kirby_Sike hat gesagt.:


> In dem Arbeitsblatt steht alles nur keine Aufgabe, wo man eine Zeile und Spalte entf


Was meinst du genau ?sorry


----------



## Kirby.exe (13. Jan 2021)

mamir00 hat gesagt.:


> 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


----------



## Kirby.exe (13. Jan 2021)

mamir00 hat gesagt.:


> Was meinst du genau ?sorry


Naja auf dem AB, welches du gesendet hast, steht keine Aufgabe für welches dieses verfahren von nutzen wäre


----------

