# Java Program to Multiply to Matrix Using Multi-dimensional Arrays

In this program, you’ll learn to multiply two matrices using multi-dimensional arrays in Java.

For matrix multiplication to take place, the number of columns of first matrix must be equal to the number of rows of second matrix. In our example, i.e.

`c1 = r2`

Also, the final product matrix is of size `r1 x c2`, i.e.

`product[r1][c2]`

## Example: Program to Multiply Two Matrices

1. `public class MultiplyMatrices {`
2. ` public static void main(String[] args) {`
3. ` int r1 = 2, c1 = 3;`
4. ` int r2 = 3, c2 = 2;`
5. ` int[][] firstMatrix = { {3, -2, 5}, {3, 0, 4} };`
6. ` int[][] secondMatrix = { {2, 3}, {-9, 0}, {0, 4} };`
7. ` // Mutliplying Two matrices`
8. ` int[][] product = new int[r1][c2];`
9. ` for(int i = 0; i < r1; i++) {`
10. ` for (int j = 0; j < c2; j++) {`
11. ` for (int k = 0; k < c1; k++) {`
12. ` product[i][j] += firstMatrix[i][k] * secondMatrix[k][j];`
13. ` }`
14. ` }`
15. ` }`
16. ` // Displaying the result`
17. ` System.out.println("Sum of two matrices is: ");`
18. ` for(int[] row : product) {`
19. ` for (int column : row) {`
20. ` System.out.print(column + " ");`
21. ` }`
22. ` System.out.println();`
23. ` }`
24. ` }`
25. `}`

When you run the program, the output will be:

```Sum of two matrices is:
24    29
6    25    ```

In the above program, the multiplication takes place as:

```|-    (a11 x b11) + (a12 x b21) + (a13 x b31)    (a11 x b12) + (a12 x b22) + (a13 x b32)    -|
|_    (a21 x b11) + (a22 x b21) + (a23 x b31)    (a21 x b12) + (a22 x b22) + (a23 x b32)    _|
```

In our example, it takes place as:

```|-    (3 x 2) + (-2 x -9) + (5 x 0) = 24    (3 x 3) + (-2 x 0) + (5 x 4) = 29    -|
|_    (3 x 2) + ( 0 x -9) + (4 x 0) = 6    (3 x 3) + ( 0 x 0) + (4 x 4) = 25    _|
```