【发布时间】:2021-04-19 19:04:27
【问题描述】:
在我的计算机科学 A AP 中,我们必须使用两个类进行矩阵乘法。
我一直遇到问题,使用该函数将矩阵相乘并得到乘积。 这是第一个类,声明并初始化矩阵:
public class Main {
public static void main(String[] args) {
int r1 = 3, c1 = 4;
int r2 = 4, c2 = 2;
int[][] a = {{1, 2, -2, 0}, {-3, 4, 7, 2}, {6, 0, 3, 1}};
int[][] b = {{-1, 3}, {0, 9}, {1, -11}, {4, -5}};
// So there are the matrices
int[][] mult = matrixMult(a, b, r1, c1, c2);
displayProduct(product);
}
public static void displayProduct(int[][] product) {
System.out.println("");
for (int[] row : product) {
for (int column : row) {
System.out.println(column + " ");
}
System.out.println();
}
}
}
如果矩阵成一个矩阵,这就是我打印乘积的方式。
然后这是应该与矩阵相乘的第二个类:
public class MatrixMult {
public static int[][] matrixMult(int[][] a, int[][] b) {
int[][] product = new int[r1][c2];
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c2; j++) {
for (int k = 0; k < c1; k++) {
product[i][j] += a[i][k] * b[k][j];
}
}
}
return product;
}
}
我尝试运行代码时收到的错误是:
Main.java:14: error: cannot find symbol
int[][] mult = matrixMult(a, b, r1, c1, c2);
^
symbol: method matrixMult(int[][],int[][],int,int,int)
location: class Main
Main.java:16: error: cannot find symbol
displayProduct(product);
^
symbol: variable product
location: class Main
MatrixMult.java:9: error: cannot find symbol
int[][] product = new int[r1][c2];
^
symbol: variable r1
location: class MatrixMult
MatrixMult.java:9: error: cannot find symbol
int[][] product = new int[r1][c2];
^
symbol: variable c2
location: class MatrixMult
MatrixMult.java:10: error: cannot find symbol
for (int i = 0; i < r1; i++) {
^
symbol: variable r1
location: class MatrixMult
MatrixMult.java:12: error: cannot find symbol
for (int j = 0; j < c2; j++) {
^
symbol: variable c2
location: class MatrixMult
MatrixMult.java:14: error: cannot find symbol
for (int k = 0; k < c1; k++) {
^
symbol: variable c1
location: class MatrixMult
【问题讨论】:
标签: java arrays matrix matrix-multiplication