鱼C论坛

 找回密码
 立即注册
查看: 2321|回复: 2

[课后作业] S1E20:二维数组 | 实现矩阵相乘算法问题

[复制链接]
发表于 2019-9-20 21:44:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想求助一下 实现矩阵相乘算法,这里的过程是怎么样的
int main()
{
        int a[M][P] = {
                {1, 2, 3},
                {4, 5, 6}};

        int b[P][N] = {
                {1, 4},
                {2, 5},
                {3, 6}};

        int c[M][N] = {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[i][j] += a[i][k] * b[k][j];
                        }
                }
        }
矩阵原理已经知道
但是这里怎么实现,或者为什么这样,详细过程不明白
  for (i = 0; i < M; i++)
        {
                for (j = 0; j < N; j++)
                {
                        for (k = 0; k < P; k++)
                        {
                                c[i][j] += a[i][k] * b[k][j];
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-20 22:29:06 | 显示全部楼层
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[i][j] += a[i][k] * b[k][j];   // i 行 j 列位置的数等于第1个矩阵的i行 与 第二个矩阵j列对应相乘再求和,即所谓“点积”。就是类似这样:a1b1+a2b2+……+a(p)b(p),p是最大的下标,为了区分加了括号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-21 14:00:08 | 显示全部楼层
superbe 发表于 2019-9-20 22:29
M行P列的矩阵 和 P行N列的矩阵相乘,结果是一个M行N列的矩阵,第一个矩阵列数必须等于第二个矩阵行数。

...

还是没懂  哎。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表