public class test3_1_1 {
public static void matrixMultiply(int[][] a,int[][] b,int[][] c,int ra,int ca,int rb,int cb){
if(ca!=rb){ //若矩阵A的列数≠矩阵B的行数,则无法相乘
System.err.println("矩阵无法相乘");
return;
}
for(int i=0;i<ra;i++) //矩阵A行数∈[0,ra)
for(int j=0;j<cb;j++){ //矩阵B列数∈[0,cb)
int sum = a[i][0]*b[0][j];
for(int k=1;k<ca;k++) //ca==rb
sum += a[i][k]*b[k][j];
c[i][j] = sum;
}
}
public static void main(String[] args) {
int[][] a = {{1,2,3},
{3,2,2}};
int[][] b = {{1,1,1,1},
{1,1,1,1},
{1,1,1,1}};
int[][] c = new int[2][4];
int ra = 2,ca = 3,rb = 3,cb = 4;
matrixMultiply(a,b,c,ra,ca,rb,cb);
for(int i=0;i<ra;i++){
for(int j=0;j<cb;j++)
System.out.print(c[i][j]+" ");
System.out.println();
}
}
}
运行结果:
6 6 6 6
7 7 7 7