Auf Thema antworten

Hi,

Nachfolgend mal ein Beispiel.

Vielleicht hilft es dir weiter....

[code=Java]


public class Matrix {

    private double matrix[][];

   

    /**

     * Constructor

     */

    public Matrix() {

        initMatrix();   

    }

   

    /**

     * Method to initalize the matrix

     */

    private void initMatrix() {

        matrix = new double[][] {

                {0,0,0,0,0},

                {0,0,0,9,0},

                {0,0,0,0,0},

                {0,0,0,0,0},

                {0,0,0,0,0}   

        };

    }


    /**

     * Method to get a vector from a matrix

     * @param number

     * @return vector

     */

    public Vector getVector(int number) {

        Vector vector = null;

        for (int m = 0; m < matrix.length; m++) {

            for (int n = 0; n < matrix[0].length; n++) {

                if(matrix[m][n] == number)

                    vector = new Vector(m, n);

            }

        }

        return vector;

    }

   

    /**

     * Method to get a new Matrix

     * @param vector

     * @param number

     * @return

     */

    public double[][] getNewMatrix(Vector vector, int number) {

        double[][] newMatrix = new double[matrix.length][matrix[0].length];

       

        // kopieren der inhalte von matrix in die neue Matrix

        System.arraycopy( matrix, 0, newMatrix, 0, matrix.length );

       

        // fülle Zeile der neuen Matrix mit 1

        for (int i = 0; i < newMatrix.length; i++) {

            newMatrix[vector.m][i] = 1;

        }

       

        // fülle Kolonne der neuen Matrix mit 1

        for (int i = 0; i < newMatrix[0].length; i++) {

            newMatrix[i][vector.n] = 1;

        }

       

        int j = newMatrix.length-1;

        // fülle die Diagonale der neuen Matrix mit 1   

        for (int i = 0; i < newMatrix.length; i++) {

                    newMatrix[i][j--] = 1;   

        }

       

        // setzten der nummer in die vector- position

        newMatrix[vector.m][vector.n] = number;

       

        return newMatrix;

    }

   

    /**

     * Methode to print the matrix content

     * @param m

     */

    private void printMatrix(double[][] m) {

        for (int i = 0; i < m.length; i++) {

            for (int j = 0; j < m[0].length; j++) {

                System.out.print(m[i][j] + "  ");

            }

            System.out.println();

        }

    }

   

    /**

     * Method for testing

     */

    public void test() {

        int number = 9;

        Vector vector = getVector(number);

       

        double[][] matrix2 = getNewMatrix(vector, number);

       

        printMatrix(matrix2);

           

    }

   

    /**

     * Main method to start the program

     * @param args

     */

    public static void main(String[] args) {

        Matrix matrix = new Matrix();

        matrix.test();   

    }

   

    /**

     * Internal class to represent a matrix vector

     *

     */

    class Vector {

        int m;

        int n;

        public Vector(int m, int n) {

            this.m=m;

            this.n=n;

        }


    }

}


[/code]



Oben