1. Overview
In this tutorial, you'll learn how to multiply two matrix in java using multi dimensional arrays.
To understand this example program, it is better to know the following concepts.
Arrays - How to Initialize Arrays
One condition must be satisfied for matrix multiplication as below.
First matrix order: R1 X C1
Second matrix order: R2 X C2
Always C1 and R2 must be same number that means number of columns in matrix 1 should be equal to the number of rows in the second matrix.
If this condition is not satisfied then matrix multiplication is not possible.
And also output matrix order will be R1 X C2.
2. Example Program To Multiply Two Matrices
Let us understand the below program that uses 3 for loops and with time complexity of Big O of n cube (O(n3)).
package com.javaprogramto.programs.arrays.matrix; public class MatrixMultiplication { public static void main(String[] args) { // creating the first matrix using arrays int[][] matrix1 = { { 1, 2, 3 }, { 4, 5, 6 } }; // creating the second matrix using two dimension array int[][] matrix2 = { { 1, 1 }, { 1, 1 }, { 1, 1 } }; // Matrix 1 rows and columns length int rows1 = matrix1.length; int columns1 = matrix1[0].length; // Matrix 2 rows and columns length int rows2 = matrix2.length; int columns2 = matrix2[1].length; // output array for storing the multiplication result int[][] result = new int[rows1][columns2]; // matrix addition core logic for (int i = 0; i < rows1; i++) { for (int j = 0; j < columns2; j++) { for (int k = 0; k < columns1; k++) { result[i][j] += matrix1[i][k] * matrix2[k][j]; } } } // printing the result for (int i = 0; i < result.length; i++) { for (int j = 0; j < result[1].length; j++) { System.out.print(result[i][j] + " "); } System.out.println(); } } }
Output:
6 6 15 15
This examples works well for smaller inputs but if the order of these matrix's are 10 X 10 or 30 X 30 then it will give worst performance. So, you should optimize the code using multithreading.
Next article on Java Matrix Multiplication with multiple threads
3. Conclusion
In this article, you've seen how to multiply two matrices in java with using 3 for loops.
As usual, example shown is over GitHub.
No comments:
Post a Comment
Please do not add any spam links in the comments section.