//矩阵乘法
//前提:前一个矩阵的行数等于后一个的列数,无论是哪一个在前面这一条都得成立才能算
//算法重点:因为计算时是用前一个矩阵的行去乘与后一个个矩阵的列,从后一个矩阵来看,运算顺序是从上往下的,所以后一个
//矩阵的行数可以决定单次运算求和的个数
public class matrix {
public static void main(String[] args) {
int a[][]= {{1,2,3},
{4,5,6}};
int b[][]={{7,8},
{10,11},
{9,12}};
//a.length是计算a的行数,b[0].length是计算b第一行的列数(相当于一维数组求长度)
//c是相乘所得矩阵
int c[][]=new int[a.length][b[0].length];
//i控制c的行号,j控制c的列号
for(int i=0;i<c.length;i++)
for (int j = 0; j < c[0].length; j++)
//上面提到了后一个矩阵的行数可以控制运算的次数在这里就用上了
for (int n = 0; n < b.length; n++)
//尝试算算就知道,前一个是列数在变化,后一个是行数在变化,而且是同步的
//所以n的位置有所不同,每次运算都是前一个行固定,后一个列固定
c[i][j]+= a[i][n] * b[n][j];
//输出c
for(int i=0;i<a.length;i++) {
for (int j = 0; j < b[0].length; j++)
System.out.print(c[i][j] + " ");
System.out.println();
}
}
}