Write a Program in Java to input two 2-D arrays and perform Matrix Multiplication:
Illustration:
import java.util.*;class MatrixMultiplication{ void printMatrix(int P[][], int r, int c) // Funtion for printing an array { for(int i=0; i<r; i++) { for(int j=0; j<c; j++) { System.out.print(P[i][j]+"\t"); } System.out.println(); } } public static void main(String args[])throws Exception { MatrixMultiplication ob = new MatrixMultiplication(); Scanner sc = new Scanner(System.in); System.out.print("Enter no. of rows of 1st Matrix : "); int r1=sc.nextInt(); System.out.print("Enter no. of columns of 1st Matrix : "); int c1=sc.nextInt(); System.out.print("Enter no. of rows of 2nd Matrix : "); int r2=sc.nextInt(); System.out.print("Enter no. of columns of 2nd Matrix : "); int c2=sc.nextInt(); if(c1 != r2) // Condition for Multiplication to be possible { System.out.println("Matrix Multiplication of the given order is not possible"); } else { int A[][]=new int[r1][c1]; // Array to store 1st Matrix int B[][]=new int[r2][c2]; // Array to store 2nd Matrix int C[][]=new int[r1][c2]; // Array to store Result of Multiplication of 2 Matrices System.out.println("*************************"); System.out.println("Inputting the 1st Matrix"); System.out.println("*************************"); for(int i=0; i<r1; i++) { for(int j=0; j<c1; j++) { System.out.print("Enter an element : "); A[i][j]=sc.nextInt(); } } System.out.println("*************************"); System.out.println("Inputting the 2nd Matrix"); System.out.println("*************************"); for(int i=0; i<r2; i++) { for(int j=0; j<c2; j++) { System.out.print("Enter an element : "); B[i][j]=sc.nextInt(); } } /* Matrix Multiplication Starts Here */ 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 + A[i][k]*B[k][j]; } C[i][j]=sum; sum=0; } } /* Printing all the Matrices */ System.out.println("n*************************"); System.out.println(" Output "); System.out.println("*************************"); System.out.println("The 1st Matrix is"); ob.printMatrix(A,r1,c1); System.out.println("*************************"); System.out.println("The 2nd Matrix is"); ob.printMatrix(B,r2,c2); System.out.println("************************************"); System.out.println("The Result of Multiplication is"); ob.printMatrix(C,r1,c2); } }}
Output:
Enter no. of rows of 1st Matrix : 2
Enter no. of columns of 1st Matrix : 3
Enter no. of rows of 2nd Matrix : 3
Enter no. of columns of 2nd Matrix : 2
*************************
Inputting the 1st Matrix
*************************
Enter an element : 8
Enter an element : 1
Enter an element : 2
Enter an element : -5
Enter an element : 6
Enter an element : 7
*************************
Inputting the 2nd Matrix
*************************
Enter an element : -5
Enter an element : 1
Enter an element : 0
Enter an element : 2
Enter an element : -11
Enter an element : 7
*************************
Output
*************************
The 1st Matrix is
8 1 2
-5 6 7
*************************
The 2nd Matrix is
-5 1
0 2
-11 7
************************************
The Result of Multiplication is
-62 24
-52 56
