Java Matrix-Java

Ibolend

Newbie
Registriert
Juni 2011
Beiträge
4
Hallo leute,

ich hab folgendes problem ich verstehe die aufgabenstellung nicht so ganz sry.
die aufgabenstellung lautet:

Gegeben ist ein Java-Programm zur Matrix-Berechnung. Implementieren Sie die Me-thode transpose zur Berechnung der transponierten Matrix (Zeilen und Spalten ge-genüber der Ursprungsmatrix vertauscht).

und das ist der quelltext zu der aufgabe

Code:
public class Matrix
{
    private int[][] data;
	
    public Matrix(int[][] data)
    {
        this.data = data;
    }
    
    // Vorbedingung: anzZeilen > 0 und anzSpalten > 0
    public Matrix(int anzZeilen, int anzSpalten)
    {
        data = new int[anzZeilen][anzSpalten];
        for (int i = 0; i < anzZeilen; i++)
    		for(int j = 0; j < anzSpalten; j++)
    			data[i][j] = 0; 
    }

    public void set(int[][] data)    
    {
    	int anzZeilen = data.length > this.data.length ? this.data.length : data.length;
    	int anzSpalten = data[0].length > this.data[0].length ? this.data[0].length : data[0].length;
    	
     	for (int i = 0; i < anzZeilen; i++)
    		for(int j = 0; j < anzSpalten; j++)
    			this.data[i][j] = data[i][j];  
    }	  
    
	/** A.transpose():
	*
	*  A entspricht Matrix, die transponiert werden soll
 	*
	*  anzSpalten <- dim(A,1)    // Anzahl Spalten in transp. Matrix
 	*  anzZeilen <- dim(A,2)     // Anzahl Zeilen in transp. Matrix
 	*  
 	*  B = create Matrix(anzZeilen, anzSpalten)
 	*  
 	*  for i <- 1 to anzSpalten do
	*     for j <- 1 to anzZeilen do
	*        B[j,i] <- A[i,j]
	*     end for
	*  end for
	*
	*  return B
    *
    */
    public Matrix transpose()
	{
		// TODO
	}

	
    public void print(String text)
    {
    	int anzZeilen = data.length;
        int anzSpalten = data[0].length;
        
        System.out.println(text);
	    for(int i = 0; i < anzZeilen; i++)
	    {
	       for(int j = 0; j < anzSpalten; j++)
	       {
	           if (data[i][j] >= 0)
	              System.out.print("\t"+ " " + data[i][j]);
	           else
	           	  System.out.print("\t"+ data[i][j]);
	       }
	       System.out.println();
        }
    }
    
	
    public static void main(String[] args)
    {
        Matrix A, B; 
		             
        int[][] data = new int[2][3];
        data[0][0]= 1;
        data[0][1]= 8;
		data[0][2]= -3;
		data[1][0]= 4;
		data[1][1]= -2;
		data[1][2]= 5;
		       
        // Matrix:
    	// 1  8 -3
    	// 4 -2  5
        A = new Matrix(data);             
        A.print("Matrix A");
        
	    B = A.transpose();
        B.print("Matrix B");
       
    }
    
}

was muss ich denn hier machen kann leider nicht so gut mathe :( bedanke mich schon ma im voraus
 
Du musst nur Spalten gegen Zeilen tauschen, der Pseudo-code ist ja schon da:
* anzSpalten <- dim(A,1) // Anzahl Spalten in transp. Matrix
* anzZeilen <- dim(A,2) // Anzahl Zeilen in transp. Matrix
anzZeilen rausfinden, anzSpalten rausfinden
(Hint: set()-Funktion)
* B = create Matrix(anzZeilen, anzSpalten)
Array erstellen das Zeilen*Spalten gross ist
(Hint: Kontruktor mit zeilen/spalten-argument)
* for i <- 1 to anzSpalten do
* for j <- 1 to anzZeilen do
* B[j,i] <- A[i,j]
* end for
* end for
Mit Schleifen die Spalten/Zeilen in Zeilen/Spalten kopieren
(Hint: Schleifen in der set()-Funktion)
* return B
neue Matrix zurückgeben ..

Also wenn die Matrix
[0][0]=0 [0][1]=1
[1][0]=2 [1][1]=3
ist, dann soll
[0][0]=0 [0][1]=2
[1][0]=1 [1][1]=3
rauskommen ...
 
sitze schon seit 8:30 an der aufgabe und hatte keinen plan.
danke dir werde es gleich in die tat umsetzen.
 
Zurück
Oben