一张图就明白了

关于转置矩阵

二个矩阵乘法

对于矩阵A(n*m),B(m*n), 这里A(n*m)表示A是n行乘m列的矩阵。

如果A*B,那么复杂度为O(n*m*n),即O(n^2m) 。进一步思考,为什么呢,直接代码解释:

 for(i=0;i<n;i++){ //A矩阵中的nfor(j=0;j<m;j++){  //A矩阵中的m 或者B矩阵中的m ,一样的for(k=0;k<n;k++){ //B矩阵中的nC[i][j]= C[i][j]+A[i][k]*B[k][j]; } } }

一个for循环是O(n),这里是三个for循环,所以为O(n*m*n)。(ps:个人感觉还是看代码比较好理解,后面三个矩阵乘法时,就会更加体会到)

三个矩阵乘法

对于矩阵A(m*n),B(n*m)和C(m*n),  这里A(m*n)表示A是m行乘n列的矩阵。

  • A*B,那么复杂度为O(m*n*m),即O(m^2n) 。
  • D(m*m)=A*B运算完后在和C运算。
  • D*C,那么复杂度为O(m*m*n),即O(m^2n) 。

与(A*B)*C等价。整个过程算法复杂度为O(m^2n) 。(一开始笔者以为是O(m^2n)*O(m^2n) = O(m^4n^2), 其实这样理解是错的,下面介绍)

不同维度的矩阵相乘的时间复杂度相关推荐

  1. 矩阵相乘的strassen算法_4-2.矩阵乘法的Strassen算法详解

    题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数和另一个矩阵A的行数相等时才能定义.如A是m×n矩阵和B ...

  2. 矩阵相乘入门,两个矩阵相乘

    •矩阵:矩阵可以看成一个n×m的数表,用二维数组表示 •矩阵乘法:定义矩阵A,B.A和B可以乘法操作当且仅当A的大小是a×b,B的大小是b×c,设矩阵C=AB,则C的大小是a×c,且有 最普通的矩阵乘 ...

  3. torch.mul() 和 torch.mm() 区别【矩阵a和b对应位相乘/矩阵相乘】

    torch.mul(a, b)是矩阵a和b对应位相乘,a和b的维度必须相等,比如a的维度是(1, 2),b的维度是(1, 2),返回的仍是(1, 2)的矩阵 torch.mm(a, b)是矩阵a和b矩 ...

  4. python求1到n的乘积_Python实现矩阵相乘的三种方法小结

    问题描述 分别实现矩阵相乘的3种算法,比较三种算法在矩阵大小分别为22∗2222∗22, 23∗2323∗23, 24∗2424∗24, 25∗2525∗25, 26∗2626∗26, 27∗2727 ...

  5. python与机器学习(二)Numpy / Pandas /矩阵相乘速度对比

    NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy的官方文档:https://nump ...

  6. 四中矩阵相乘方法对比

    在公茂果老师的课件中,给出了三种矩阵相乘的方法: 1. 利用矩阵定义,对矩阵进行运算.即C(i,j)=A(i,k)*B(k,j),时间复杂度为: 每一个元素需时间n C矩阵共有n2个元素 因此,总的时 ...

  7. 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法

    首先请连矩阵乘法乘法都还没有了解的同学简单看一下这篇博客: https://blog.csdn.net/weixin_44049566/article/details/88945949 首先直接暴力求 ...

  8. 13,12_基本运算,add/minus/multiply/divide,矩阵相乘mm,matmul,pow/sqrt/rsqrt,exp/log近似值,统计属性,mean,sum,min,max

    1.12.基本运算 1.12.1.add/minus/multiply/divide 1.12.2.矩阵相乘mm,matmul 1.12.3.pow/sqrt/rsqrt 1.12.4.exp/log ...

  9. 矩阵相乘的理解(矩阵相乘的几何意义)及证明过程

    矩阵相乘的理解 1.基底的理解 2.证明过程 3.公式分析 3.1分析 3.2 3.2.1 n3=n2n3=n2n3=n2 时: 3.2.2 n3<n2n3<n2n3<n2 时: 3 ...

最新文章

  1. 《预训练周刊》第11期:全球最大智能模型“悟道2.0”重磅发布、谷歌KELM:将知识图与语言模型预训练语料库集成...
  2. (002)RN开发之第一个项目以及真机运行
  3. Python运维-获取当前操作系统的各种信息
  4. P2634 [国家集训队]聪聪可可(点分治做法)
  5. sqoop同步时间戳到mysql_在sqoop导入中使用24小时时间戳
  6. 前端开发 填充padding 0229
  7. 简短总结一下C#里跨线程更新UI(转)
  8. 计算机房空调设计标准,《数据中心制冷与空调设计标准》的要点
  9. 【H5】 svg的 defs用法 渐变
  10. 【FFmpeg编程进阶】(13)FLV 解码器初始化函数 ff_h263_decode_init() 代码分析 --- 待更新
  11. 好看的html视频播放界面,推荐几款超个性的HTML5视频播放器
  12. 轻松解决电脑小喇叭的红叉叉
  13. tkinter:Toplevel
  14. python爬取招聘信息_python 爬取boss直聘招聘信息实现
  15. 语音特征MFCC和PLP
  16. 蓝桥杯单片机——第十二届蓝桥杯单片机第一场省赛
  17. 编写判断一个正整数是否为素数的函数
  18. 将两个有相连关系的数据表进行归类
  19. P2P网贷中的4种理财业务模式
  20. 大数据招标文件_大数据处理与分析平台及软件项目招标公告 - 千里马招标网

热门文章

  1. JAVA微信开源项目(jeewx)百度BAE 部署文档
  2. imagej之Python脚本
  3. Gerchberg–Saxton算法
  4. 【New Feature】阿里云OSS同城区域冗余存储重磅发布,提供云上同城容灾服务能力!...
  5. 《研发企业管理——思想、方法、流程和工具》——1.7 企业研发管理的目的
  6. js中==和===的区别
  7. 【转】Glut处理鼠标事件
  8. mysql的InnoDB和MyISAM对比
  9. 华为ebgp_BGP选路原则之首选值(华为特性)
  10. 数论 —— 莫比乌斯反演