Ist diese Methode zur Matrix Vektor Multiplikation korrekt ?

user126

Mitglied
Code:
public static double[] multiplyvek(double[][] A, double[] x) {
            int m = A.length;
            int n = A[0].length;
            if (x.length != n) throw new RuntimeException("Illegal matrix dimensions.");
            double[] y = new double[m];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    y[i] += A[i][j] * x[j];
            return y;
        }
 
Sind die einzelnen Elemente von A die Zeilen oder Spalten der Matrix? Ich gehe mal davon aus, dass es Spalten sind. D.h. m ist die Anzahl der Spalten und n die Zahl der Zeilen. In dem Fall musst du folgende Änderungen vornehmen.
Java:
double[] y = new double[n]; // womit dann x und y gleich lang sein sollten
...
y[i] += A[j][i] * x[j]; // j ist die Spalte und i die Zeile
 

Zurück
Oben