michael80: Feld an Methode übergeben und neues Feld zurück bekommen

Beitrag lesen

Hallo

Ich möchte mittels eine Methode eine Matrix (Feld) transponieren.

Bsp.:

3  5    zu   2   4   5
2  4   --->  1   2   3
1  2

Dazu habe ich eine Methode geschrieben, die das realisieren soll - diese (sollte) auch funktionieren.

Mein Problem ist nun, wie ruf ich diese Methode auf? Ich bekomme immer einen Fehler auf der Konsole, der so aussieht, als wären die Feldlängen nicht in Ordnung...

---
import java.io.*;
public class transformation_matrix2 {

public static double trans (double matrix_in [][]){
    int anz_zeile = matrix_in.length;
    int anz_spalte = matrix_in[0].length;
    double matrix_out[][] = new double [anz_spalte][anz_zeile];

for (int i=0; i<anz_zeile; i++){
      for (int j=0; j<anz_spalte; j++){
        matrix_out[anz_spalte-j-1][anz_zeile-i-1]=matrix_in[i][j];
      }
    }
  return matrix_out[anz_spalte][anz_zeile];
  }

public static void  main (String[] args) {

int n=3;
    int m=2;
    double matrix_a [][] = new double [n][m];
    double matrix_trans [][] = new double [m][n];

matrix_a[0][0]=3;
    matrix_a[0][1]=5;

matrix_a[1][0]=2;
    matrix_a[1][1]=4;

matrix_a[2][0]=1;
    matrix_a[2][1]=2;

matrix_trans[m][n]=trans(matrix_a);

for (int i=0; i<n; i++){
      for (int j=0; j<m; j++){
        System.out.print(matrix_a[i][j]+"\t");
      }
      System.out.println();
    }

System.out.println();
    System.out.println();

for (int i=0; i<m; i++){
      for (int j=0; j<n; j++){
        System.out.print(matrix_trans[i][j]+"\t");
      }
      System.out.println();
    }

}
}
--

matrix_trans[m][n]=trans(matrix_a); damit wollte ich die Methode aufrufen, aber es will nicht so recht. Wie muss ich es machen bzw. wo steckt mein Fehler?

Beste Grüße Micha