'Multiplying 2D arrays in Java
I'm having some trouble with the question below, not entirely sure if its write as I can't figure out how to call the method in the driver method to print the result.
(Question) Create a Method with header:
public static int[][] multiplyArrays(int[][] a, int[][] b)
The above method will multiply two 2D arrays referred to by a and b, and return a 2D array
reference of a × b. Multiplying two 2D array work on the following algebraic expression to
find out the resultant array: result[i][j]= a[i][k] * b[k][j]
Hint: In this case, inside the method, declare a 2D int[][] array reference variable and
instantiate it with a size of a.length x b[0].length. They complete the rest using the
series multiplication. This is an application of nested loop. The outermost loop will run from
0 to N. The middle loop will run for index i and the innermost one will run for index j.
My code so far:
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;
}
Solution 1:[1]
Since the method you defined is static, you could simply use classname.multiplyArrays(a, b) ; where a and b are the names of the variables in your driver method.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ashmin Jayson |
