矩阵乘法作为算法题我觉得对我来说是比较难想的,而且作为没学线性代数的我来说,这简直就是场灾难,在我研究了书上及网上的有关资料后,我觉得自己应该差不多可以理解矩阵乘法的要领了,希望可以帮助大家:其实矩阵的运算包括许多种,有加减乘除法等等。矩阵加法就是相同位置的数字加一下。
矩阵减法也类似。矩阵乘以一个常数,就是所有位置都乘以这个数。但是,等到矩阵乘以矩阵的时候,一切就不一样了。首先让我们了解下矩阵乘法:矩阵乘法(英语:matrix multiplication)是一种根据两个矩阵得到第三个矩阵的二元运算,第三个矩阵即前两者的乘积,称为矩阵积*

它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义*

这个结果是怎么算出来的呢,来看下面这个题:

下面听我慢慢的分析一下:咱们先将第一个矩阵设为A,第二个为B,最后乘积得到的矩阵为C。

A中的第一行各个元素分别与B中第一列各个元素相乘得到的和即为C中的第一个元素(2×1+1×1=3)
A中的第一行各个元素分别与B中第二列各个元素相乘得到的和即为C中的第二个元素(2×2+1×0=4)
A中第一行已经计算完毕,现在应该为第二行了,C中也变为了第二行。
A中的第二行各个元素分别与B中第一列各个元素相乘得到的和即为C中的第三个元素(4×1+3×1=7)A中的第二行各个元素分别与B中第二列各个元素相乘得到的和即为C中的第四个元素(4×2+3×0=8)

嗯~这就是矩阵乘法的概念了,遇到复杂的矩阵乘法也是采用此方法。但是,重要的问题来了,如何用C语言实现呢,其实我一开始就是了解了这个思路,让我写也是不会写的,要有多个循环嵌套。但是呢,只要努力想,成功总会来的。冲冲冲!

#include<stdio.h>i
nt main(void)
{int a[10][10],b[10][10]; int c[10][10]={0};//一定要记得初始化,不然系统会给你分配垃圾数据的哦!int e,f; //定义矩阵a的行列数  int g,h;//定义矩阵b的行列数               int i,j,k;scanf("%d %d",&e,&f);   for(i=0;i<e;i++)  for(j=0;j<f;j++)   scanf("%d",&a[i][j]);//输入a中各元素       scanf("%d %d",&g,&h);   for(i=0;i<g;i++)  for(j=0;j<h;j++)   scanf("%d",&b[i][j]);//输入b中各元素     if(f!=g) printf("不可计算");//判断是否满足矩阵相乘的条件(a的列数与b的行数相等)   else { for(i=0;i<e;i++)//遍历c矩阵各行,其行数与a的行数相等                      for(j=0;j<h;j++)//遍历c矩阵i行各列    for(k=0;k<f;k++)//用k循环累加和计算c[i][j]      c[i][j]+=a[i][k]*b[k][j];//遍历a矩阵各行与b矩阵各列  }      for(i=0;i<e;i++){  for(j=0;j<h;j++)   printf("%d\n",c[i][j]);  } }

这就是矩阵乘法的代码了,需要我们认真思考才可以想到的哦,fighting!!!

C语言实现矩阵的乘法相关推荐

  1. 三元组法矩阵加法java_C语言实现矩阵加法、减法、乘法和数乘运算

    一.知识储备 • 矩阵与矩阵之间可以进行加法.减法和乘法运算(矩阵的"除法",被特别地定义出了逆矩阵,通过一个矩阵与另一个的逆矩阵的乘法来实现),矩阵和数之间可以进行数乘运算: • ...

  2. Bailian3256 矩阵的乘法【数学计算】

    3256:矩阵的乘法 总时间限制: 1000ms 内存限制: 65536kB 描述 矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b. 输出格式: ...

  3. 如何理解矩阵的乘法?

    如何理解矩阵的乘法? 转载:http://www.360doc.com/content/18/0208/09/15930282_728535573.shtml 2018-02-08 风九天88 阅 1 ...

  4. c语言编程将图片上下翻转,C语言实现矩阵翻转(上下翻转、左右翻转)

    C语言实现矩阵翻转 上下翻转与左右翻转 实例代码: #include void matrix (int m, int n, int t) { int arr[m][n]; int i, j, k; f ...

  5. C++matrix chain multiplication矩阵链乘法算法的实现(附完整源码)

    C++lmatrix chain multiplication矩阵链乘法算法的实现 C++matrix chain multiplication矩阵链乘法算法的实现的完整源码(定义,实现,main函数 ...

  6. 矩阵的乘法通用模板(C++/Java)

    矩阵的乘法 0x00 C++版本 #include <bits/stdc++.h>using namespace std; const int N = 25; const double I ...

  7. 【线性变换/矩阵及乘法】- 图解线性代数 03

    本文转自公众号---遇见数学---图解数学---线性代数部分 感谢遇见数学工作组将大学课本晦涩难懂.故作高深的数学知识,用通俗易懂而又生动有趣的方法解释出来. 线性变换是线性空间中的运动, 而矩阵就是 ...

  8. I00029 C语言程序-打印九九乘法表

    这是小时候背的九九乘法表,是中文版,不是数字版,用C语言程序打印出来了. C语言程序如下: /* I00029 C语言程序-打印九九乘法表 */#include <stdio.h> #in ...

  9. ​用c语言打印自定义的乘法口诀表。例如:输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。...

    用c语言打印自定义的乘法口诀表.例如:输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表. #include <stdio.h> int main () { int n; in ...

  10. java矩阵类_java矩阵类,矩阵的乘法

    问题如下 我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法.没有过多的技巧,就是循环的使用. 相关的code package day20180728; import ...

最新文章

  1. Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)
  2. 家属楼如何设置使用免费wifi
  3. Python3 JSON处理
  4. Springboot项目中配置tomcta监控日志
  5. libevent源码深度剖析一
  6. Windows2008 可用的通用蓝牙驱动程序
  7. 分布问题(二元,多元变量分布,Beta,Dir)
  8. 身份证(省市)编码表
  9. 【Note2】MPS/PXE/ADS/INA电流电压,i2c设备在位和读,samba/nfs,ntp/log/me/树莓派,pip/office,vr,i2ctool,大数据,pam
  10. coreseek mysql.sock_coreseek配置
  11. swpu计算机科学学院推荐免试,西南石油大学2020届本科毕业生推荐免试硕士研究生结果公示 - 千里马招标网...
  12. html毕业答辩ppt,毕业答辩ppt
  13. 打印机扫描找不到计算机用户名,打印机扫描到pc显示不可用 打印机扫描到pc显示不可用的解决方法...
  14. ModHOMM3 使用说明
  15. ubuntu格式化磁盘并挂载
  16. 治军首在选将,余承东挂帅华为云
  17. 浅析信息系统架构的应用架构与数据架构
  18. 解一元三次方程方程问题细节探讨
  19. eclipse“随变”,随机变换eclipse启动界面
  20. 使用@media实现网页字体大小自适应

热门文章

  1. 三菱伺服驱动器示例_三菱MRJB伺服放大器应用实例
  2. sign-canvas 一个基于canvas开发,封装于Vue组件的通用手写签名板(电子签名板),支持pc端和移动端;
  3. MyEclipse里自制JSP模板
  4. 用python批量下载modis数据的速度怎么样_MODIS数据下载与处理-pymodis的使用(持续更新...)...
  5. 3d max morpher教程
  6. JavaScript入门教程
  7. centos服务器修改密码,linux centos默认的密码
  8. js解密学习--steam登入密码解密分析
  9. rss阅读器Reeder 5 for Mac
  10. JDK动态代理(通俗白话)