Transponierte Matrix

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich muss eine Methode schreiben, die
eine gegebene quadratische Matrix
ind deren transponierte umwandelt.
Wie mache ich sowas??
 
G

Gast

Gast
habe vergessen mein jetziges Programm hinzuschreiben:
public void transpose ( int[][] matrix ) //throws MatrixExceptions
{
int m = 1, n = 1; // number of rows / columns
matrix = new int[m][n];
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
matrix[j] = matrix[j];

}

könnte das so ungefähr stimmen???
 

HAOSK

Mitglied
Hi,
also ich glaube nicht dass das so funktionieren wird...

1. ich würde eine neue matrix anlegen
int[][] matrixTrans = new int[matrix[].length()][matrix[][].length()];

2. die entsprechende werte in der neuen Matrix speichern.

3. Die neue Matrix zurückgeben...(return matrixTrans)

Gruß
 

Maximum

Aktives Mitglied
Jo so müsste es klappen.

Wenn du es so machst, wie du es beschrieben hast, überschreibst du ja schon werte in deiner matrix. An die kommst du später nicht mehr ran.
also musst du dir eine zweite matrix erstellen, in der du die transponierte matrix reinschreibst.

@ Hoask:
Es soll ja eine quadratische matrix sein.
Ich würde folgendes machen:

1. Zeilenanzahl in eine variable (zb: n) speichern
2. n mit der Spaltenanzahl vergleichen
3. eine neue matrix der größe n*n erzeugen.

wenn die anzahl der zeilen und spalten schon nicht übereinstimmt kannst du schon abbrechen.
(zumindest für diese aufgabe) :wink:
 
G

Gast

Gast
Danke für die Antworten, die haben schon sehr geholfen, aber gibt es auch eine Möglichkeit die transponierte Matrix zu bekommen ohne ein neues Array zu benutzen?
 
G

Gast

Gast
aber es MUSS eine Möglichkeit geben!! zumindest nach meiner Aufgabenstellung, aber ich glaube das reicht auch,
nochmals vielen Dank!
 
G

Gast

Gast
ich verstehe leider nicht ganz, welche Dreiecksmatrix? und (j,i) und (i,j) habe ich doch auch schon vertauscht!?
 

Maximum

Aktives Mitglied
Oh.. das tut mir leid, dass ich da eine falsche antwort gegeben habe. :oops:

Du gehst einfach die obere Dreiecksmatrix um und vertauscht dann den Eintrag (j,i) mit dem Eintrag (i,j). Dann brauchst du keine weitere Matrix.

Kannst du mir das nochmal erklären.. Ich blick da nicht so durch was du mit "du gehst die obere Dreiecksmatrix um.. " meinst ???:L
 

HAOSK

Mitglied
Hi,

Matrix siet so aus:

| a1 a2 a3 a4 a5 |
| b1 b2 b3 b4 b5 |
| c1 c2 c3 c4 c5 |
| d1 d2 d3 d4 d5 |
| e1 e2 e3 e4 e5 |

mit einer Variablen n kannst du
a2 und b1 vertauschen. Weiter geht's mit
a3<=>c1;a4<=>d1;b3<=>c2;a5<=>e1;b4<=>d2;usw...

Dreiecksmatrix => a1..a5; a1..e1; => somit ein Dreieck...
 

Lim_Dul

Top Contributor
Achtung, der Code ist nicht getestet, sondern nur runtergetippt hier im Forum.

Code:
public void transpose ( int[][] matrix, int n) {
  for (int i = 0; i < n; ++i) {
    for (int j = i+1; j < n; ++j) {
      int x = matrix[i][j];
      matrix[i][j] = matrix[j][i];
      matrix[j][i] = x;
    }
  }
}
 
G

Guest

Gast
Vielen dank für die Antworten!
Aber warum schreibst du in der 2 forschleife
int j = i+1 ?
 
G

Gast

Gast
und ist diese Zuweisung wirklich in Ordnung:
int x = matrix[j]; ??????????ß
 

Lim_Dul

Top Contributor
Gast hat gesagt.:
und ist diese Zuweisung wirklich in Ordnung:
int x = matrix[j]; ??????????ß


Warum nicht? in matrix[j] steht ein int wert drin, denn kann ich auch in einer andern Variablen speichern.

Anonymous hat gesagt.:
Vielen dank für die Antworten!
Aber warum schreibst du in der 2 forschleife
int j = i+1 ?

Weil ich verhindern will, dass Sachen doppelt bearbeitet werden, ich gehe nur die obere Dreeicksmatrix durch (oder die untere, je nach dem, wie man die Indizes versteht)

Die Diagonale einer Matrix wird ja durch das Transponieren nicht verändert. Ergo muss j = 1 nicht betrachtet werden. (Deshalb das +1)
Und wenn das Element i = 1, j = 2, also matrix[1][2] mit dem Element matrix[2][1] vertauscht wird, dann sollte man diese Vertauschung nicht nochmal durchführen, sonst hat man die Ursprüngliche Matrix wieder.

Am besten malst du dir mal eine Matrix auf und gehts den Algorithmus Schritt für Schritt durch. (3x3 ist zu empfehlen)
Dann sollte es klarer werden.
 

HAOSK

Mitglied
Hi,
die Zuweisung ist OK, denn in Matrix[j] ist ja ein int gespeichert, was die zweite for-Schleife betrifft, mit j = i + 1 könntest du ein Bischen Rechenpower sparen...
matrix[0][0] = matrix[0][0] ist ja Blödsinn an sich...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Methoden Transponierte Matrix Java Basics - Anfänger-Themen 3
I matrix aufgabe Java Basics - Anfänger-Themen 22
L Zweidimensionaler Array; n x m - Matrix überprüfuen Java Basics - Anfänger-Themen 35
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
M Matrix Java Basics - Anfänger-Themen 3
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
B Dünn besetzte Matrix Java Basics - Anfänger-Themen 7
Al3xand3r01 Matrix, Nachbarelemente Java Basics - Anfänger-Themen 16
E Rückwärtsmultiplikation einer invertierten matrix Java Basics - Anfänger-Themen 2
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
M Matrix auf 4 Elemente untersuchen mit offenen Enden Java Basics - Anfänger-Themen 8
B Diskrete Faltung (Matrix) Randfälle Java Basics - Anfänger-Themen 8
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
O Matrix, Vektor Java Basics - Anfänger-Themen 9
H 2D Array, Symmetrische Matrix Java Basics - Anfänger-Themen 12
S Matrix spaltenweise befüllen Java Basics - Anfänger-Themen 1
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
C Matrix erstellen Spaltensumme, Zeilensumme, Diagonale Java Basics - Anfänger-Themen 1
N Vererbung Submatrix mit Verweis auf Matrix erstellen Java Basics - Anfänger-Themen 9
J Matrix erstellen Java Java Basics - Anfänger-Themen 7
B Transponiertes Matrix Java Basics - Anfänger-Themen 12
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
C Matrix transponieren - Hilfe Java Basics - Anfänger-Themen 1
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
L Matrix(Array) minimieren... Java Basics - Anfänger-Themen 9
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
S eingegebene Matrix anzeigen Java Basics - Anfänger-Themen 4
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
O Matrix Multiplizieren Java Basics - Anfänger-Themen 4
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
T Matrix auf Symmetrie überprüfen Java Basics - Anfänger-Themen 6
V Matrix Transponieren Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
W Zweidimensionale Arrays als Matrix ausgeben Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
O Matrix ordnen Java Basics - Anfänger-Themen 4
M Symmetrische Matrix Java Basics - Anfänger-Themen 2
W Methoden Rang von einer Matrix mit Gauss Java Basics - Anfänger-Themen 0
U Matrix Subtrahieren Java Basics - Anfänger-Themen 12
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
I Matrix überprüfen Java Basics - Anfänger-Themen 8
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
O Einlesen einer Matrix von der Console Java Basics - Anfänger-Themen 18
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Matrix Java Basics - Anfänger-Themen 14
T Methode, die eine 2 dimensionale Matrix kopiert. Java Basics - Anfänger-Themen 16
J Matrix Java Java Basics - Anfänger-Themen 3
D 2 mehrdimensionale Matrix einlesen Java Basics - Anfänger-Themen 2
A N*N Matrix Determinante berechnen Java Basics - Anfänger-Themen 47
K Quadratische Matrix um 90° drehen Java Basics - Anfänger-Themen 5
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
O Java Matrix mal Matrix über while Schleife... Java Basics - Anfänger-Themen 10
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
M Matrix - Probelm Java Basics - Anfänger-Themen 7
O 2D Matrix befüllen mit geraden Zahlen!? Java Basics - Anfänger-Themen 14
J Java Matrix befüllen Java Basics - Anfänger-Themen 5
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
F Matrix Java Basics - Anfänger-Themen 11
E Array als Matrix Java Basics - Anfänger-Themen 21
G OOP Parameter Matrix Java Basics - Anfänger-Themen 2
N Matrix Klasse Java Basics - Anfänger-Themen 4
B Maske an eine Matrix anpassen Java Basics - Anfänger-Themen 5
W Matrix übergeben Java Basics - Anfänger-Themen 7
T Matrix transponieren Java Basics - Anfänger-Themen 17
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
D Problem: Werte eine Matrix vergleichen! Java Basics - Anfänger-Themen 5
B Matrix Java Basics - Anfänger-Themen 2
Semox Matrix multiplizieren Java Basics - Anfänger-Themen 4
N Matrix an toString Java Basics - Anfänger-Themen 7
C Diagonale in einem NxN Matrix Java Basics - Anfänger-Themen 6
F Einträgen von Matrix zu sotieren Java Basics - Anfänger-Themen 2
D JUnit auf Matrix anwenden Java Basics - Anfänger-Themen 5
J Spezielle Matrix ausgeben ! Java Basics - Anfänger-Themen 8
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
F matrix werte übergeben Java Basics - Anfänger-Themen 5
M Hauptdiagonale Matrix berechnen Java Basics - Anfänger-Themen 6
M Klassenerstellung für Matrix mit Rechenopperationen Java Basics - Anfänger-Themen 42
D Matrix .bat datei erstellen und öffnen Java Basics - Anfänger-Themen 2
J Matrix ausgeben Java Basics - Anfänger-Themen 9
N Matrix Matrix Produkt Java Basics - Anfänger-Themen 7
N prüfe ob etwas in einer Matrix steht... Java Basics - Anfänger-Themen 14
L rechtecke zeichnen anhand von matrix Java Basics - Anfänger-Themen 27
J Matrix aus Datei einlesen mit StreamTokenizer Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben