1.计算的两个矩阵其中第一个矩阵的列数必须和第二个矩阵的行数一致(或者反过来);
2.第一个矩阵的行数决定了结果矩阵的行数,第二个矩阵的列数决定了结果矩阵的列数;
package org.admln.matrix;
/*
* 20150211
*/
public class MatrixMultiplication {
public static void main(String[] args) {
/*
* 1.构建矩阵
* 2 9 7 4 2
* matrix1= 3 1 4 matrix2= 6 8
* 2 6
*/
int[][] matrix1 = {{2,9,7},{3,1,4}};
int[][] matrix2 = {{4,2},{6,8},{2,6}};
System.out.println("matrix1矩阵为" + matrix1.length + "行" + matrix1[0].length +"列");
for(int i=0;i<matrix1.length;i++) {
for(int j=0;j<matrix1[i].length;j++) {
System.out.print("\t" + matrix1[i][j]);
}
System.out.println();
}
System.out.println("matrix2矩阵为" + matrix2.length + "行" + matrix2[0].length +"列");
for(int i=0;i<matrix2.length;i++) {
for(int j=0;j<matrix2[i].length;j++) {
System.out.print("\t" + matrix2[i][j]);
}
System.out.println();
}
/*
* 2.矩阵相乘
*/
System.out.println("结果矩阵为" + matrix1.length + "行" + matrix2[0].length + "列");
for(int i=0;i<matrix1.length;i++) {
for(int j=0;j<matrix2[0].length;j++) {
int sum = 0;
for(int k=0;k<matrix2.length;k++) {
sum += matrix1[i][k] * matrix2[k][j];
}
System.out.print("\t" + sum);
}
System.out.println();
}
}
}