为什么矩阵乘法器不起作用?

时间:2012-09-28 20:22:07

标签: java matrix

public static double[][] multiplyMatrix(double[][] matrix1, double[][] matrix2) {
        // As both arrays are square and the same size, the row size represents the row size and column size for both matrices
        int dimension = matrix1.length;

        double[][] matrix3 = new double[dimension][dimension];

        for (int i = 0; i < dimension-1; i++) {
            for (int j = 0; j < dimension-1; j++) {
                for (int k = 0; k < dimension-1; j++) {
                    matrix3[i][j] += matrix1[i][k] * matrix2[k][j];
                }
            }
        }

        return matrix3;
    }

非常令人沮丧。

3 个答案:

答案 0 :(得分:5)

看起来k总是等于零。你在两个循环中递增j。

答案 1 :(得分:5)

你的for循环需要多进行一次迭代。

for (int i = 0; i < dimension-1; i++)

应该是

for (int i = 0; i < dimension; i++)

同样以同样的方式更新jk循环(以及k循环增量j,这看起来像是复制/粘贴错误。)

答案 2 :(得分:1)

此代码生成ArrayIndexOutOfBoundsException。您正在j的{​​{1}}循环中递增k。更好用:

`for