Related Articles

# Java Program to Multiply two Matrices of any size

• Difficulty Level : Basic
• Last Updated : 27 Feb, 2020

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

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. Participate in the Scholorship Test for First-Step-to-DSA Course for Class 9 to 12 students.

My Personal Notes arrow_drop_up