//矩阵相乘
//矩阵a[m*n]乘以矩阵b[n*k],得到矩阵c[m*k]
//矩阵[m*k]为返回结果
void multiplyMatrix(double a[], double b[], int m, int n, int k,double c[])
{
int i,j,l,u;
for(i=0;i<m;i++){
for(j=0;j<k;j++){
u = i*k+j;
c[u] = 0.0;
for(l=0;l<n;l++) {
c[u] = c[u]+a[i*n+l]*b[l*k+j];}
}
}
return ;
}
//x*y=c 2*2的矩阵 应用举例
int l=2,n=2,m=2;
double c [2][2] = {0};
double x [2][2] = {1,2,3,4};
double y [2][2] = {5,6,7,8};
multiplyMatrix(&x[0][0],&y[0][0],l,m,n,&c[0][0]);
结果:c[2][2]= {19,22,43,50};