我正在尝试创建一个方法,该方法将 2 个二维数组作为参数并打印它们的乘法数组(类似于方法中的矩阵乘法)。似乎它在运行时陷入了无限循环的某个地方。有什么修改吗?
public static void multiplicationOfArray(int[][] matrix1, int[][] matrix2) {
int row1 = matrix1.length;
int column1 = matrix1[0].length;
int row2 = matrix2.length;
int column2 = matrix2[0].length;
int[][] resultmatrix = new int[row1][column2];
if (column1 == row2) {
for (int i = 0; i < row1; row1++) {
for(int j = 0; j < column2; j++) {
for (int k = 0; k < column1; k++) {
resultmatrix[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
for (int row = 0; row < row1; row++) {
for (int column = 0; column < column2; column++) {
System.out.println(resultmatrix[row][column] + " ");
}
System.out.println();
}
}
}
最佳答案
如果尺寸不正确/无效,那么您可能会抛出异常。 你也可以试试这个方法 -
public static double[][] multiply(double[][] A, double[][] B) {
int mA = A.length;
int nA = A[0].length;
int mB = B.length;
int nB = B[0].length;
if (nA != mB) throw new RuntimeException("Illegal matrix dimensions.");
double[][] C = new double[mA][nB];
for (int i = 0; i < mA; i++)
for (int j = 0; j < nB; j++)
for (int k = 0; k < nA; k++)
C[i][j] += A[i][k] * B[k][j];
return C;
}
可以找到完整的代码here .
关于java - 2个二维数组相乘的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487025/