- Example - Home
- Example - Environment
- Example - Strings
- Example - Arrays
- Example - Date & Time
- Example - Methods
- Example - Files
- Example - Directories
- Example - Exceptions
- Example - Data Structure
- Example - Collections
- Example - Networking
- Example - Threading
- Example - Applets
- Example - Simple GUI
- Example - JDBC
- Example - Regular Exp
- Example - Apache PDF Box
- Example - Apache POI PPT
- Example - Apache POI Excel
- Example - Apache POI Word
- Example - OpenCV
- Example - Apache Tika
- Example - iText
- Java Useful Resources
- Java - Quick Guide
- Java - Useful Resources
How to multiply two matrices of different dimensions in Java
Problem Description:
How to multiply two matrices of different dimensions?
Solution:
Following example shows multiplication of two rectangular matrices with the help of two user defined methods multiply( int [] [] ,int [] []) and mprint(int [] []).
public class Matrix{
public static int[][] multiply(int[][] m1, int[][] m2){
int m1rows = m1.length;
int m1cols = m1[0].length;
int m2rows = m2.length;
int m2cols = m2[0].length;
if (m1cols != m2rows){
throw new IllegalArgumentException("matrices
don't match: "+ m1cols + " != " + m2rows);
int[][] result = new int[m1rows][m2cols];
for (int i=0; i< m1rows; i++){
for (int j=0; j< m2cols; j++){
for (int k=0; k< m1cols; k++){
result[i][j] += m1[i][k] * m2[k][j];
return result;
)
}
}
}
}
/** Matrix print.
*/
public static void mprint(int[][] a){
int rows = a.length;
int cols = a[0].length;
System.out.println("array["+rows+"]["+cols+"] = {");
for (int i=0; i< rows; i++){
System.out.print("{");
for (int j=0; j< cols; j++){
System.out.print(" " + a[i][j] + ",");
System.out.println("},");
}
}
System.out.println(":;");
}
public static void main(String[] argv){
int x[][] ={
{ 3, 2, 3 },
{ 5, 9, 8 },
};
int y[][] ={
{ 4, 7 },
{ 9, 3 },
{ 8, 1 },
};
int z[][] = Matrix.multiply(x, y);
Matrix.mprint(x);
Matrix.mprint(y);
Matrix.mprint(z);
}
}
Result:
The above code sample will produce the following result.
array[2][3]={
{3, 2, 3}
{5, 9, 8}
};
array[3][2]={
{4, 7}
{9, 3}
{8, 1}
};
array[2][2]={
{63, 30}
{165, 70}
};
Advertisements