在 Java 中乘以二维数组

Multiplying 2D arrays in Java

我在回答下面的问题时遇到了一些问题,不确定它是否写成,因为我不知道如何调用 driver 方法中的方法来打印结果。

(问题)用 header 创建一个方法:

public static int[][] multiplyArrays(int[][] a, int[][] b)

上述方法将乘以a和b所指的两个二维数组,return一个二维数组 a × b 的引用。将两个二维数组相乘可得到以下代数表达式 找出结果数组:result[i][j]= a[i][k] * b[k][j]

提示:在这种情况下,在方法内部,声明一个 2D int[][] 数组引用变量和 用 a.length x b[0].length 的大小实例化它。他们使用 级数乘法。这是嵌套循环的一个应用。最外层的循环将从 运行 0N。中间循环将为索引 i 运行,最里面的循环将为索引 j.

运行

到目前为止我的代码:

public static int[][] multiplyArrays(int[][] a, int[][] b) {   
  var aNumRows = a.length;
  var aNumCols = a[0].length;
  var bNumCols = b[0].length;
  int[][] m = new int[aNumRows][bNumCols];
  for (var r = 0; r < aNumRows; ++r) {
      for (var c = 0; c < bNumCols; ++c) {
          m[r][c] = 0;
          for (var i = 0; i < aNumCols; ++i) {
              m[r][c] += a[r][i] * b[i][c];
              System.out.printf("%3d",r, c);
          }
      }
  }
  return m;
}

由于您定义的方法是静态的,您可以简单地使用 classname.multiplyArrays(a, b) ;其中 ab 是驱动程序方法中变量的名称。