矩阵乘法C实现

本文介绍了如何在C语言中实现矩阵乘法,详细解析了矩阵乘法的运算规则,并提供了一种利用指针灵活操作二维数组的方法。通过理解数组指针运算,实现了从数学公式到代码的过程,强调了矩阵乘法在高等数学、向量运算和深度学习中的重要性。

【8-5】如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的:

结果矩阵中14这个值是通过2 × -2 加上 -6 × -3得到的。

编写一个函数,用于执行两个矩阵的乘法。函数的原型如下:

void matrix_multiply(int *m1, int *m2, int *r, int x, int y, int z);

m1是一个x行y列的矩阵,m2是一个y行z列的矩阵,这两个矩阵应该相乘,结果存储于r中,它是一个x行z列的矩阵。记住,你应该对公式做些修改,以适应C语言下标从0而不是从1开始这个事实!


虽然题目中给了公式,给了示例,也给出了矩阵计算的结果,但是我们还是应该从数学常识中知道矩阵乘法的运算规则:

第一个矩阵第一行的每个数字,各自乘以第二个矩阵第一列对应位置的数字(注意这里是第二个矩阵的第一列,不是行哦),然后将乘积相加,就可以得到矩阵左上角的那个值。也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和。

感兴趣的同学可以通过线性方程的运算证明矩阵的运算规则。(理解矩阵的运算对高等数学、向量运算、图像处理、深度学习都很重要)

知道了运算规则后,我们就看如何代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值