Ausgabe einer Matrix mit Bezeichner?

Dragonball

Grünschnabel
Hallo,

wie kann ich von einer Matix an einer bestimmten Stelle, nämlich die Bezeichner in der Zeile und Spalte ausgeben.

Beipiel:
Als Input bekomme ich eine Matrix, die so ausseht:

|||| F1 | F2 | F3 | F4
M1 | 1 | 0 | 1 | 1
M2 | 0 | 0 | 0 | 0
M3 | 0 | 1 | 1 | 0


Ausgabe soll sein:
M1: F1, F3, F4
M3: F2, F3

Ich kann die Inhalte ausgeben, aber es sollen die Bezeicher Mx mit deren Fx (Inhalt 1) ermittelt und wichtig mit BEZEICHNER ausgegeben werden

Hat jmd ein Idee? Ich weiß kein Ausweg mehr=(

Danke.
 
Zuletzt bearbeitet:
Moin,

wie sieht denn der von Dir verwendete Datentyp aus? Mehr-dimensionales Array oder Map oder ...?

Wenn die erste Spalte M1..Mx irgendwie als Index hast, sollte diese Ausgabe ja schon mal kein Problem sein.
Ich würde immer dann, wenn im Datenteil ein Bit auf '1' steht den entsprechenden Bezeichner F1..F4 ausgeben!

Gruß
Klaus
 
Hi, Klaus!
Danke erstmal für deine schnelle Antwort.

Ich benutze ein 2-dim. Array. Habe es zum Teil gelöst, aber die Ausgabe ist nicht optimal.

Wenn ich es ausführe, sieht es so aus:

Identifizierte Module und Funktionen:
M0:F0 M0:F2 M0:F4

M2:F1 M2:F3
M3:F2


Aber es sollte am besten so ausehen:eek:hne Leer Zeile und M0 und M2 nur einmal vorkommen! Geht das?
Ps. Wo kann ich diese Ausgabe abspeichern?

Identifizierte Module und Funktionen:
M0:F0 F2 F4
M2:F1 F3
M3:F2



Mein Code sieht wie folgt aus:
Code:
public class Dyn {
	
	public static int[][] getDyn(int[][]fktM){
		
		System.out.println("Identifizierte Module und Funktionen: ");
		System.out.println();
		for (int i = 0; i < fktM.length; i++) {
			//System.out.print("M" + i + ":");
			for (int j = 0; j < fktM[i].length; j++) {
				if(fktM[i][j] == 1){
				System.out.print("M" + i + ":");
				System.out.print("F" + j + " ");		
				}			
			}
			System.out.println();
		}
		return fktM;
		
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int[][] fktM = {
				{1,0,1,0,1},
				{0,0,0,0,0},
				{0,1,0,1,0},
				{0,0,1,0,0}
		};
		
		System.out.println("M und F: ");
		for (int i = 0; i < fktM.length; i++) {
			for (int j = 0; j < fktM[i].length; j++) {
				System.out.print(fktM[i][j]);
			}
			System.out.println();
		}
			
		System.out.println();
		System.out.println("Identifizierte Module und Funktionen: ");
		for (int i = 0; i < fktM.length; i++) {
			//System.out.print("M" + i + ":");
			for (int j = 0; j < fktM[i].length; j++) {
				if(fktM[i][j] == 1){
				System.out.print("M" + i + ":");
				System.out.print("F" + j + " ");		
				}			
			}
			System.out.println();
		}
	}
}


Danke und Gruss,
Kid
 
Moin,

habe nochmal schnell über Deinen Code geschaut, der aber so leider nur sehr schwer zu lesen ist! Bitte benutze zukünftig die Code-Tags - das geht über den '#'-Button im Editor oder händisches Enfügen von "[_CODE_][/_CODE_]" (OHNE die Unterstriche!).

(a) ich habe jetzt nicht ganz verstanden, ob du wirklich statt M1..M3 als Ausgabe M0..M2 haben willst. Das ist dann sicher ein Problem mit den Indexen, da im Array der Index für 1 bis X von 0 bis X-1 läuft!

(b) Die Leerzeile wird vermutlich durch das letzte "System.out.println();" erzeugt! "print()" erzeugt eine Ausgabe OHNE, "println()" MIT Zeilenumbruch!

(c) Zum Abspeichern: Gute Frage - Datenbank, Textdatei etc ... :p

Gruß
Klaus
 
Ja, du hast recht mit den Index ist es ein Problem!
Es soll eigentlich M1, M2, .. sein, und nicht M0! Zur Notlösung habe ich die Array um eins vergrößert und die Index 0 einfach weggelassen und mit Index 1 angefangen.
Ist wahrscheinl keine gute Idee. Kennst du eine bessere andere?

Zur Abspeicherung sollte ich jetzt mit XML machen, aber habe keine Ahnung davon.

Ausgabe:
M1: F1 F3
M4: F2 F3 F6

und dann abpeichern in XML-Format

Wie macht man das? Hast du ein Beispiel, viell auch java code?

Danke,
Kid
 

Neue Beiträge

Zurück