矩阵相乘 C语言算法
double a[2][3] = { {1,2,3},
{4,5,6}
};
double b[3][2] = { { 7,8 },
{ 9,10},
{ 11,12}
};
double c[2][2];
ab,满足a的列等于b的行,运行结果:
c[2][2]={{58,64},
{139,154}
},
//矩阵相乘算法,最后四个参数是两个相乘的矩阵的行数和列数
//f2=s1
void MatrixMulti(double * left, double * right, double * result,u16 f1, u16 f2, u16 s1, u16 s2)
{
u16 i,j,p;
//int a[f1][f2], b[s1][s2], c[f1][s2];
//a[i][j]==a[if2+j]
//由矩阵相乘,要求f2=s1,以下用f2
double m,n,mn;
for (i = 0; i < f1; i++) //i表示第i行
{
for (j = 0; j < s2; j++) //j表示第j列
{
result[if2 + j] = 0; //在这里 result[i][j] = result[if2+j];
for(p=0;p<f2;p++)
{
m=left[if2+p];
n=right[ps2+j];
mn=mn;
result[is2 + j] +=mn;
}
}
}
}
矩阵相乘 C语言算法
最新推荐文章于 2021-05-25 16:16:30 发布