# Java Program to Multiply two Matrices of any size

Given two matrices A and B of any size, the task to multiply them in Java.

Examples:

```Input: A[][] = {{1, 2},
{3, 4}}
B[][] = {{1, 1},
{1, 1}}
Output: {{3, 3},
{7, 7}}

Input: A[][] = {{2, 4},
{3, 4}}
B[][] = {{1, 2},
{1, 3}}
Output: {{6, 16},
{7, 18}}
```

Approach:

• Take the two matrices to be multiplied
• Check if the two matrices are compatible to be multiplied
• Create a new Matrix to store the product of the two matrices
• Traverse each element of the two matrices and multiply them. Store this product in the new matrix at the corresponding index.
• Print the final product matrix

Below is the implementation of the above approach:

 `// Java program to multiply two square matrices. ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  `    ``// Function to print Matrix ` `    ``static` `void` `printMatrix(``int` `M[][], ` `                            ``int` `rowSize, ` `                            ``int` `colSize) ` `    ``{ ` `        ``for` `(``int` `i = ``0``; i < rowSize; i++) { ` `            ``for` `(``int` `j = ``0``; j < colSize; j++) ` `                ``System.out.print(M[i][j] + ``" "``); ` ` `  `            ``System.out.println(); ` `        ``} ` `    ``} ` ` `  `    ``// Function to multiply ` `    ``// two matrices A[][] and B[][] ` `    ``static` `void` `multiplyMatrix( ` `        ``int` `row1, ``int` `col1, ``int` `A[][], ` `        ``int` `row2, ``int` `col2, ``int` `B[][]) ` `    ``{ ` `        ``int` `i, j, k; ` ` `  `        ``// Print the matrices A and B ` `        ``System.out.println(``"\nMatrix A:"``); ` `        ``printMatrix(A, row1, col1); ` `        ``System.out.println(``"\nMatrix B:"``); ` `        ``printMatrix(B, row2, col2); ` ` `  `        ``// Check if multiplication is Possible ` `        ``if` `(row2 != col1) { ` ` `  `            ``System.out.println( ` `                ``"\nMultiplication Not Possible"``); ` `            ``return``; ` `        ``} ` ` `  `        ``// Matrix to store the result ` `        ``// The product matrix will ` `        ``// be of size row1 x col2 ` `        ``int` `C[][] = ``new` `int``[row1][col2]; ` ` `  `        ``// Multiply the two marices ` `        ``for` `(i = ``0``; i < row1; i++) { ` `            ``for` `(j = ``0``; j < col2; j++) { ` `                ``for` `(k = ``0``; k < row2; k++) ` `                    ``C[i][j] += A[i][k] * B[k][j]; ` `            ``} ` `        ``} ` ` `  `        ``// Print the result ` `        ``System.out.println(``"\nResultant Matrix:"``); ` `        ``printMatrix(C, row1, col2); ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` ` `  `        ``int` `row1 = ``4``, col1 = ``3``, row2 = ``3``, col2 = ``4``; ` ` `  `        ``int` `A[][] = { { ``1``, ``1``, ``1` `}, ` `                      ``{ ``2``, ``2``, ``2` `}, ` `                      ``{ ``3``, ``3``, ``3` `}, ` `                      ``{ ``4``, ``4``, ``4` `} }; ` ` `  `        ``int` `B[][] = { { ``1``, ``1``, ``1``, ``1` `}, ` `                      ``{ ``2``, ``2``, ``2``, ``2` `}, ` `                      ``{ ``3``, ``3``, ``3``, ``3` `} }; ` ` `  `        ``multiplyMatrix(row1, col1, A, ` `                       ``row2, col2, B); ` `    ``} ` `} `

Output:
```Matrix A:
1 1 1
2 2 2
3 3 3
4 4 4

Matrix B:
1 1 1 1
2 2 2 2
3 3 3 3

Resultant Matrix:
6 6 6 6
12 12 12 12
18 18 18 18
24 24 24 24
```

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.

Article Tags :
Practice Tags :