Hallo Ihr Lieben,
ich hab ne Matrix die ich um 90 Grad drehen (transponieren) soll.
Hab jetzt alle Foren und das Internet durchgestöbert... aber finde immer nur das gleiche, nur, so funktioniert es nicht ganz...
Erstmal mein Code:
Ein Bequemlichkeitskonstruktor (hab verschiedene gemacht, unter anderem auch einen mit Zufallszahlen und son Kram und wo man die Anzahl der Zeilen und Spalten angeben kann, aber mit dem ist es erstmal am einfachsten):
So nun haben wir ein ganz kleines 2D Array.
Nun will ich das drehen.
Das man dafür einfach en neues Array anlegt und ne verschachtelte for Schleife macht, ist klar, jedoch steht überall im Internet als Anweisung in der verschachtelten for Schleife nur:
Und das alleine reicht definitiv nicht aus.
Aus
1 2
3 4
wird
1 3
2 4
Und dabei handelt es sich ja nicht um eine 90° Drehung...
Liebe Grüße
Tobi
ich hab ne Matrix die ich um 90 Grad drehen (transponieren) soll.
Hab jetzt alle Foren und das Internet durchgestöbert... aber finde immer nur das gleiche, nur, so funktioniert es nicht ganz...
Erstmal mein Code:
Code:
public class Matrix
{
private int [][] elemente;
private int [][] transponierte;
Ein Bequemlichkeitskonstruktor (hab verschiedene gemacht, unter anderem auch einen mit Zufallszahlen und son Kram und wo man die Anzahl der Zeilen und Spalten angeben kann, aber mit dem ist es erstmal am einfachsten):
HTML:
public Matrix()
{
elemente = new int [][]{{1,2},{3,4}};
}
So nun haben wir ein ganz kleines 2D Array.
Nun will ich das drehen.
Code:
public void transponieren()
{
transponierte = new int [elemente.length][elemente[0].length];
if(elemente.length == elemente[0].length)
{
for(int i=0;i<elemente.length;i++)
{
for (int j=0;j<elemente[i].length;j++)
{
transponierte[j][i] = elemente[i][j];
}
}
}
else
{
System.out.println("Das Array ist nicht rechteckig!");
}
}
Das man dafür einfach en neues Array anlegt und ne verschachtelte for Schleife macht, ist klar, jedoch steht überall im Internet als Anweisung in der verschachtelten for Schleife nur:
Code:
transponierte[j][i] = elemente[i][j];
Und das alleine reicht definitiv nicht aus.
Aus
1 2
3 4
wird
1 3
2 4
Und dabei handelt es sich ja nicht um eine 90° Drehung...
Liebe Grüße
Tobi
Zuletzt bearbeitet: