# Java Program to Multiply two Matrices by Passing Matrix to a Function

In this program, you’ll learn to multiply two matrices using a function 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 using a Function

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 = multiplyMatrices(firstMatrix, secondMatrix, r1, c1, c2);`
9. ` // Displaying the result`
10. ` displayProduct(product);`
11. ` }`
12. ` public static int[][] multiplyMatrices(int[][] firstMatrix, int[][] secondMatrix, int r1, int c1, int c2) {`
13. ` int[][] product = new int[r1][c2];`
14. ` for(int i = 0; i < r1; i++) {`
15. ` for (int j = 0; j < c2; j++) {`
16. ` for (int k = 0; k < c1; k++) {`
17. ` product[i][j] += firstMatrix[i][k] * secondMatrix[k][j];`
18. ` }`
19. ` }`
20. ` }`
21. ` return product;`
22. ` }`
23. ` public static void displayProduct(int[][] product) {`
24. ` System.out.println("Product of two matrices is: ");`
25. ` for(int[] row : product) {`
26. ` for (int column : row) {`
27. ` System.out.print(column + " ");`
28. ` }`
29. ` System.out.println();`
30. ` }`
31. ` }`
32. `}`

When you run the program, the output will be:

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

In the above program, there are two functions:

• `multiplyMatrices()` which multiplies the two given matrices and returns the product matrix
• `displayProduct()` which displayes the output of the product matrix on the screen.

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    _|
```