Java Program to Multiply Two Matrices
This article covers a program in Java that find and prints the multiplication result of any two matrices, entered by user at run-time of the program. The program is created in following two ways:
- Multiply two 3*3 given matrices
- Multiply two matrices of given order and elements
Multiply Two 3*3 Given Matrices in Java
The question is, write a Java program to perform matrix multiplication based on user input. The program given below is its answer:
import java.util.Scanner; public class CodesCracker { public static void main(String[] args) { int i, j, k, sum=0; int[][] matrixOne = new int[3][3]; int[][] matrixTwo = new int[3][3]; int[][] matrixThree = new int[3][3]; Scanner scan = new Scanner(System.in); System.out.print("Enter 9 Elements of First Matrix: "); for(i=0; i<3; i++) { for(j=0; j<3; j++) { matrixOne[i][j] = scan.nextInt(); } } System.out.print("Enter 9 Elements of Second Matrix: "); for(i=0; i<3; i++) { for(j=0; j<3; j++) { matrixTwo[i][j] = scan.nextInt(); } } // multiplying the two matrices for(i=0; i<3; i++) { for(j=0; j<3; j++) { sum = 0; for(k=0; k<3; k++) { sum = sum + (matrixOne[i][k] * matrixTwo[k][j]); } matrixThree[i][j] = sum; } } System.out.println("\nMultiplication Result of Two Matrices is:"); for(i=0; i<3; i++) { for(j=0; j<3; j++) { System.out.print(matrixThree[i][j]+ " "); } System.out.print("\n"); } } }
The snapshot given below shows the sample run of above program with user input 1, 2, 3, 4, 5, 6, 7, 8, 9 as nine elements for first, whereas 1, 2, 1, 2, 4, 6, 7, 2, 5 as nine elements for the second matrix:
Multiply Two Matrices of Given Order and Elements in Java
This program is basically the modified version of previous program. As this programs works to multiply 3*3 matrices as well as any other matrix of any order, entered by user at run-time:
import java.util.Scanner; public class CodesCracker { public static void main(String[] args) { int i, j, k, sum=0, rOne, cOne, rTwo, cTwo; Scanner scan = new Scanner(System.in); System.out.print("Enter First Matrix's Row Size: "); rOne = scan.nextInt(); System.out.print("Enter First Matrix's Column Size: "); cOne = scan.nextInt(); int[][] matrixOne = new int[rOne][cOne]; System.out.print("Enter " +(rOne*cOne)+" Elements of First Matrix: "); for(i=0; i<rOne; i++) { for(j=0; j<cOne; j++) matrixOne[i][j] = scan.nextInt(); } System.out.print("Enter Second Matrix's Row Size: "); rTwo = scan.nextInt(); if(cOne != rTwo) { System.out.println("\nMultiplication not possible!"); return; } System.out.print("Enter Second Matrix's Column Size: "); cTwo = scan.nextInt(); int[][] matrixTwo = new int[rTwo][cTwo]; System.out.print("Enter " +(rTwo*cTwo)+" Elements of Second Matrix: "); for(i=0; i<rTwo; i++) { for(j=0; j<cTwo; j++) matrixTwo[i][j] = scan.nextInt(); } int[][] matrixThree = new int[rOne][cTwo]; // multiplying the two matrices for(i=0; i<rOne; i++) { for(j=0; j<cTwo; j++) { sum = 0; for(k=0; k<cOne; k++) sum = sum + (matrixOne[i][k] * matrixTwo[k][j]); matrixThree[i][j] = sum; } } System.out.println("\nMultiplication Result of Two Matrices is:"); for(i=0; i<rOne; i++) { for(j=0; j<cTwo; j++) System.out.print(matrixThree[i][j]+ " "); System.out.println(); } } }
The sample run of above Java program, on multiplying two matrices of given order and elements, is shown in the snapshot given below:
Same Program in Other Languages
« Previous Program Next Program »
Liked this post? Share it!