C语言实现矩阵乘法

C语言实现矩阵乘法,第1张

C语言实现矩阵乘法

记性现在太差了,发个帖子权当记笔记了。

数据由一维数组保存,例如二行三列矩阵

123456

则一维数组为[1,4,2,5,3,6]

fr,fc为前一矩阵行列,gr,gc为后一矩阵行列。

void Multi(double *X, double *Y, double *res, long fr, long fc, long gr, long gc)//这里fc和gr可以只有一个

{

    long i, j, ind;

    double tmp;

   

    for(i=0; i < fr; i++)

        for(j=0; j < gc; j++) {

            tmp = 0.0;

            for(ind = 0; ind < fc; ind++)

                {tmp += X[i + ind*fr] * Y[ind + j*gr];

                printf("X[%d]:%f * Y[%d]:%f :%fn",i + ind*fr,X[i + ind*fr],ind + j*gr,Y[ind + j*gr],tmp);}

            res[i + j*fr] = tmp;

            printf("%fn",res[i + j*fr]);

        }

}

。。。。。。

    double a1[6] = {1.0,2.0,3.0,4.0,5.0,6.0};

    double a2[6] = {3.0,4.0,5.0,6.0,7.0,8.0};

    double tmp[9]={0};

Multi(a1,a2,tmp,3,2,2,3);

    for(int i=0;i<9;i++)

    {

        printf("%fn",tmp[i]);

    }

    。。。。。

结果:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5520883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存