Hi, habe folgendes Problem und benötige Unterstützung: im nachfolgenden Java-Text erstelle ich zwei Matrizen in der Form eines zweidimnesionalen Arrays.
Nun möchte ich auf zwei ganz bestimmte Spalten einer m x n Matrix zugreifen und deren beiden Spaltenwerte jeweils tauschen; wobei ich die Spaltennummer mit der Tastatur eingeben wollte, ich stehe im Moment auf dem Schlauch und bringe das selbst nicht hin.
Hier mein Text:
Java:
publicclass scalarMatrix {/**
* @param args
*/publicstaticvoidmain(String[] args){// TODO Auto-generated method stubint a[][];int b[][];int c[][];int e[][];int s[][];int f[];int matrixE[][];int m1 =0;int m2 =0;int m4 =0;int n1 =0;int n2 =0;/*
* EINGABEN FUER DIE MATRIX -A-
*/System.out.println("Anzahl der Zeilen der ersten Matrix:");
m1 =IOUtils.readInt();System.out.println("Anzahl der Spalten der ersten Matrix:");
n1 =IOUtils.readInt();
a =newint[m1][n1];System.out.println("Es folgt die Eingabe der Werte:");for(int i =0; i < m1; i++){for(int j =0; j < n1; j++){System.out.println("a["+ i +"]["+ j +"]:");
a[i][j]=IOUtils.readInt();}}/*
* EINGABEN FUER DIE MATRIX -B-
*/System.out.println("\nAnzahl der Zeilen der zweiten Matrix:");
m2 =IOUtils.readInt();System.out.println("Anzahl der Spalten der zweiten Matrix:");
n2 =IOUtils.readInt();
b =newint[m1][n1];System.out.println("Es folgt die Eingabe der Werte:");for(int i =0; i < m2; i++){for(int j =0; j < n2; j++){System.out.println("b["+ i +"]["+ j +"]:");
b[i][j]=IOUtils.readInt();}}
Das mit dem Spaltentausch müsste ungefähr so aussehen:
Java:
a[i][]=IOUtils.readInt();//Eingabe der Spaltennummer j, Bsp. Tausch 2. und 3. Spalte - über Tastaturfor(int j =0; j < n1; j++){
j2 = temp
j3 =new j2
temp = j3
System.out.println("a["+ i +"]["+ j +"]:");
Das scheint aber so nicht zu funktionieren.
Ich bitte um Hilfe, damit ich das Problem über Fehlermeldungen bzw. Definition der Spalten beheben kann.
wozu machst du 2 matrizen, wenn du nur in einer davon 2 Spalten vertauschen möchtest? Die 2. Matrix wird nicht benutzt?
Du musst nun einfach eine der beiden Spalten in eine Liste oder ein anderes Array schreiben. Nennen wir es AUSHILFE. Machst also eine Kopie von der Spalte A in AUSHILFE. Dann nimmst du die Spalte B und überschreibst die Werte in der Spalte A. In der Spalte A und Spalte B stehen jetzt die Werte von der Spalte B. Jetzt nimmst du die Werte aus AUSHILFE (sind ja die ursprünglichen Werte aus Spalte A) und speicherst diese in Spalte B.
Ja schon klar, die andere Matrix hab ich noch für was anderes gebraucht.
jetzt aber nochmal zum Tausch, wie muss ich dass konkret formulieren das ich dann das Ergebnis bekomme, das Prinzip ansich habe ich schon verstanden.
Zur Matrix A: dort möchte ich zum Beispiel die 2. und die 3. Spalte miteinander tauschen, wobei die Eingabe der zu tauschenden Spalten ich mit der Tastatur eingeben möchte. Wie muss ich das umsetzen?
Hi
funktionieren tut das ganze zwar, aber leider verwendet dein Algorithmus nicht die von mir eingegebene Matrix und ich bekomme als Ergebnismatrix immer so etwas 11001, 11001, 11100, etc.
Kann man das noch irgendwie anpassen, verbessern sodass ich mit meinen Matrizen etwas anstellen kann.