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;
}
非常令人沮丧。
答案 0 :(得分:5)
看起来k总是等于零。你在两个循环中递增j。
答案 1 :(得分:5)
你的for循环需要多进行一次迭代。
for (int i = 0; i < dimension-1; i++)
应该是
for (int i = 0; i < dimension; i++)
同样以同样的方式更新j
和k
循环(以及k
循环增量j
,这看起来像是复制/粘贴错误。)
答案 2 :(得分:1)
此代码生成ArrayIndexOutOfBoundsException
。您正在j
的{{1}}循环中递增k
。更好用:
`for