最新消息:点击查看大S的省钱秘笈

矩阵乘法C语言实现

编程相关 Slyar 602浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

这段代码是我刚写的,不是什么技巧性很强的东西,完全都是基础。上午线性代数讲了矩阵乘法,下午没课,寻思着自己也好久没写程序了,不如就拿矩阵乘法开刀,熟悉一下C语言...顺便也可以用来做线性代数的作业...=_=

恩,代码有些长,我只是想多回顾一下以前的知识...这段代码用到了函数、指向指针的指针、函数指针、文件操作...加了注释方便需要的童鞋理解...

代码可能还不完善...以后学得更多了再改吧...

2009.3.23    增加内存释放函数

转载请注明:Slyar Home » 矩阵乘法C语言实现

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (14)

  1. 我刚学这个,好难
    夏日冰花3年前 (2014-05-15)回复
  2. @adeal 行 列 矩阵 行 列 矩阵
    Slyar7年前 (2010-06-07)回复
  3. 灰暗星辰 :请问,in.txt里面矩阵是什么形式?
    同问,调试时试了很多种格式都输出无法运算
    adeal7年前 (2010-06-07)回复
  4. @Slyar 更高级的是指别的语言还是别的C语言程序?matlab的矩阵计算比较简单,不过我学校没有……写好的程序?有链接么?搜的时候,都是些不使用指针的简单矩阵计算,是关键词选的不对么。
    灰暗星辰7年前 (2009-12-18)回复
  5. @灰暗星辰 呃...已知大小的数组直接代入就可以了嘛,那个大小你可以用常量啊... 不过我觉得你要进行数学运算的话,完全可以不用我这个初级的运算程序,有更高级的已经写好的可以用...
    Slyar7年前 (2009-12-18)回复
  6. @Slyar 我在研究卡尔曼滤波器,需要将一些系数矩阵带入公式进行计算。最大值方法可行,加减乘都可以运算,不过求逆矩阵稍微麻烦些。这个已经实现了,不过老师说这样的话,本来不可算的矩阵乘法变成可算了(我设的4x4),这样不严谨,还不容易跟别人说明,不让我用这方法……矩阵大小应该容易判断,如果是一个数组呢,比如a[3][2]={{1,2,3},{2,3,4}},就如同你从txt文件读取数组的大小一样,我想读取个已知数组a[3][2],就是想给row_a,col_a赋值。话说数组好像不能当文字列处理吧,好纠结= =……先多谢博主回答这么些小白的问题,看了你的博文,感觉受益匪浅。不知能不能加个好友,我QQ261145843,这个空间我也是头一次用,还没注册……
    灰暗星辰7年前 (2009-12-18)回复
  7. @灰暗星辰 用C的话,因为不C89不支持变长数组,所以你只能设一个最大值了(或者你不嫌麻烦可以用malloc)...至于判断矩阵大小这个应该不难吧,用换行符和计数就可以了。
    Slyar7年前 (2009-12-18)回复
  8. 明白了,谢谢~还有一个问题想请教,我想做一个矩阵乘法的函数,例如 a[2][3]={{1,2,3},{2,3,4}} b[3][2]={{1,2},{2,3},{3,4}} ,MatrixFree(c,a,b)输出c[3][3]矩阵,函数能自动识别读入的a[m][n],b[n][k]中的m,n,k值,然后算出c[m][k]。函数内2维矩阵不知道怎么设,因为m,n不确定……用你的矩阵乘法C语言的话,矩阵长宽是从txt导入的,怎么才能对已知矩阵识别长宽呢,困扰我很久了,期待回复m(_ _)m
    灰暗星辰7年前 (2009-12-18)回复
  9. @灰暗星辰 第一行是矩阵1的大小m1 n1,之后m1行n1列是矩阵元素,空格间隔;接下来是矩阵2的大小m2 n2,之后m2行n2列是矩阵元素,空格间隔。
    Slyar7年前 (2009-12-18)回复
  10. 请问,in.txt里面矩阵是什么形式?
    灰暗星辰7年前 (2009-12-18)回复
  11. 好长的,你就不能截一下吗?
    午夜8年前 (2009-03-22)回复
  12. 看到字母头就疼。
    老时8年前 (2009-03-21)回复
  13. 学习了。。。
    笨猫8年前 (2009-03-20)回复
  14. 唔,写个class封装下更好,嗯。
    Felix0218年前 (2009-03-20)回复