Comment

sawsan

April 22, 2010 at 3:48 PM

/**

* Multiply two matrices.

* Only defined for int: TODO: rewrite using 1.5 Generics to add

* support for long, float, and double.

* @author Ian F. Darwin, http://www.darwinsys.com/

* @version $Id: Matrix.java,v 1.4 2004/03/07 02:53:53 ian Exp $

*/

public class Matrix {

/* Matrix-multiply two arrays together.

* The arrays MUST be rectangular.

* @author Tom Christiansen & Nathan Torkington, Perl Cookbook version.

*/

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];

// multiply

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+"]["+co… = {");

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);

//-

}

}

View All Comments | View Tutorial

* Multiply two matrices.

* Only defined for int: TODO: rewrite using 1.5 Generics to add

* support for long, float, and double.

* @author Ian F. Darwin, http://www.darwinsys.com/

* @version $Id: Matrix.java,v 1.4 2004/03/07 02:53:53 ian Exp $

*/

public class Matrix {

/* Matrix-multiply two arrays together.

* The arrays MUST be rectangular.

* @author Tom Christiansen & Nathan Torkington, Perl Cookbook version.

*/

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];

// multiply

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+"]["+co… = {");

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);

//-

}

}

View All Comments | View Tutorial

Related Tutorial and Articles

Advertisements

If you enjoyed this post then why not add us on Google+? Add us to your Circles