This post shows a Java program to multiply two matrices.

To multiply one matrix with another you need to do a dot product of rows and columns. Let’s see it with an example where you are trying to multiply a 3X3 matrix with a 3X2 matrix.

How matrix multiplication happens here using dot product can be explained as follows-

First row of first matrix is multiplied with the first column of second matrix.

s11 = r11Xp11 + r12Xp21 + r13Xp31

Second row of first matrix is multiplied with the second column of second matrix.

s12 = r11Xp12 + r12Xp22 + r13Xp32

Then second row of first matrix is multiplied with the first column of second matrix.

s21 = r21Xp11 + r22Xp21 + r23Xp31

and so on…

#### Java program for matrix multiplication

In the matrix multiplication Java program, initially user is prompted to enter the matrices. You can also check that the number of columns in the first matrix are equal to the number of rows in the second matrix. Then using these two matrices you can do the multiplication.

import java.util.Scanner; public class MatrixMultiplication { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter number of rows and columns in the matrix : "); int r1 = in.nextInt(); int c1 = in.nextInt(); // First matrix int[][] matrix1 = prepareMatrix(r1, c1); System.out.print("Enter number of rows and columns in the matrix : "); int r2 = in.nextInt(); int c2 = in.nextInt(); if(c1 != r2){ in.close(); throw new IllegalArgumentException("Number of columns in the first matrix should be equal to the number of rows in the second matrix"); } // Second matrix int[][] matrix2 = prepareMatrix(r2, c2); // multiplied result stored in this matrix int multiplyMatrix[][] = new int[r1][c2]; int sum = 0; for(int i = 0; i < r1; i++){ for(int j = 0; j < c2; j++){ for(int k = 0; k < c1; k++){ sum = sum + matrix1[i][k] * matrix2[k][j]; } multiplyMatrix[i][j] = sum; sum = 0; } } System.out.println("Multiplied Matrix : " ); for(int i = 0; i < r1; i++){ for(int j = 0; j < c2; j++){ System.out.print(" " +multiplyMatrix[i][j]+"\t"); } System.out.println(); } if(in != null){ in.close(); } } private static int[][] prepareMatrix(int row, int column){ Scanner sc = new Scanner(System.in); System.out.print("Enter elements of Matrix : "); int matrix[][] = new int[row][column]; for(int i = 0; i < row; i++){ for(int j = 0; j < column; j++){ matrix[i][j] = sc.nextInt(); } } System.out.println("Entered Matrix : " ); for(int i = 0; i < row; i++){ for(int j = 0; j < column; j++){ System.out.print(" " +matrix[i][j]+"\t"); } System.out.println(); } return matrix; } }

__Output__

Enter number of rows and columns in the matrix : 3 3 Enter elements of Matrix : 1 3 5 7 9 11 13 15 17 Entered Matrix : 1 3 5 7 9 11 13 15 17 Enter number of rows and columns in the matrix : 3 3 Enter elements of Matrix : 2 4 6 8 10 12 14 16 18 Entered Matrix : 2 4 6 8 10 12 14 16 18 Multiplied Matrix : 96 114 132 240 294 348 384 474 564

**Related Posts**

- Matrix Addition Java Program
- Matrix Subtraction Java Program
- Java Program to Find Maximum And Minimum Number in a Matrix
- Java Program to Find The Maximum Element in Each Row of a Matrix
- Remove Element From an Array in Java
- Find The Largest And Second Largest Element of an Array in Java
- Read File Asynchronously in Java
- Java Program to Swap Two Numbers Without Using Third Variable

That’s all for the topic **Matrix Multiplication Java Program**. If something is missing or you have something to share about the topic please write a comment.

**You may also like**

Nicely done and written. Splendid explanation on matrix multiplication. To check accuracy of your code answer with matrix multiplication calculator , which will be helpful whether answer is right or wrong.