[课后作业] S1E20:二维数组 | 实现矩阵相乘算法问题
想求助一下 实现矩阵相乘算法,这里的过程是怎么样的int main()
{
int a = {
{1, 2, 3},
{4, 5, 6}};
int b = {
{1, 4},
{2, 5},
{3, 6}};
int c = {0};
int i, j, k, row;
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
for (k = 0; k < P; k++)
{
c += a * b;
}
}
}
矩阵原理已经知道
但是这里怎么实现,或者为什么这样,详细过程不明白
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
for (k = 0; k < P; k++)
{
c += a * b; M行P列的矩阵 和 P行N列的矩阵相乘,结果是一个M行N列的矩阵,第一个矩阵列数必须等于第二个矩阵行数。
for (i = 0; i < M; i++) //循环计算结果矩阵的 1 至 M 行
{
for (j = 0; j < N; j++) //循环计算结果矩阵的 1 至 N 列
{
for (k = 0; k < P; k++) //循环计算结果矩阵每个数
{
c += a * b; // i 行 j 列位置的数等于第1个矩阵的i行 与 第二个矩阵j列对应相乘再求和,即所谓“点积”。就是类似这样:a1b1+a2b2+……+a(p)b(p),p是最大的下标,为了区分加了括号。 superbe 发表于 2019-9-20 22:29
M行P列的矩阵 和 P行N列的矩阵相乘,结果是一个M行N列的矩阵,第一个矩阵列数必须等于第二个矩阵行数。
...
还是没懂哎。。。。
页:
[1]