Matrix einlesen



  • Hallo,

    muss mal ein paar Fragen stellen zu Sachen die mir in C++ keine Probleme machen wuerden, aber ich java weis ich net wie das geht.

    Ich will eine Matrix Klasse schreiben, und muss die einlesen funzt dann folgendes?

    public class Matrix{
    	public Matrix(int z, int s){
    		zeilen = z;
    		spalten = s;
    		m = new int[zeilen][spalten];
    		for(int i= 0; i<zeilen;i++){
    			for(int j=0; j<spalten;j++){
    				matrix[i][j] = System.in.read();
    			}
    		}
    	}
    
    	int zeilen;
    	int spalten;
    	int m[][];
    }
    

    Ich habe naemlich keine Ahnuun wegen des anlegens der Matrix und dem einlesen eines Integers. Ich kann das leider gerade net prüfen.



  • Du willst die Matrix doch sicherlich aus einer Datei einlesen, oder?
    Wenn ja geht das so:

    public class Matrix {
    
        int zeilen;
        int spalten;
        int[][] matrix;
    
        public Matrix(int zeilen, int spalten) {
    
            matrix = readMatrix(zeilen, spalten);
        }
    
        private final int[][] readMatrix(int zeilen, int spalten) {
    
            BufferedReader in = new BufferedReader(new FileReader(new String(zeilen+"*"spalten+".mrx")));
            int[][] m = new int[zeilen][spalten];
            StringTokenizer str;
            String line;
            int i = 0;
            int j = 0;
            while ((line = in.readLine()) != null) {
                str = new StringTokenizer(line, ",");
                while (str.hasMoreTokens()) {
                     m[i][j++] = Integer.parseInt(str.nextToken());
                }
                ++i;
            }
            return m;
        }
    }
    

    Also in diesem Beispiel wurde die Matrix in dieser Art gespeichert:

    1,0,0,0
    0,1,0,0
    0,0,1,0
    0,0,0,1

    Ich weis nicht ob es das ist was du wolltest, aber vielleicht hilft´s dir ja.



  • Vielen dank für deine Hilfe jetzt laeuft alles was ich brauchte.


Anmelden zum Antworten