Fortran Coder

查看: 15042|回复: 8
打印 上一主题 下一主题

[求助] fortran 中 矩阵与向量计算问题

[复制链接]

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
楼主
发表于 2019-6-23 17:37:04 | 显示全部楼层
妙木山养娃人 发表于 2019-6-23 17:04
您好!您这个是用列*行得到一个3*3的数组,好像计算没问题。但如果调换顺序,计算行*列的时候,结果是14 ...

这就是Fortran这类强类型语言的一个大坑在此
1*3的矩阵和3*1的矩阵得到的东西,程序认为是一个1*1的矩阵而不是一个数
程序并不认为1*1的矩阵和一个数是一回事
对此,你可以设一个1*1的矩阵变量接收矩阵乘法的结果,然后再取这个矩阵第一行第一列的元素即可

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
沙发
发表于 2019-6-23 17:38:40 | 显示全部楼层
liudy02 发表于 2019-6-23 17:37
这就是Fortran这类强类型语言的一个大坑在此
1*3的矩阵和3*1的矩阵得到的东西,程序认为是一个1*1的矩阵 ...

这个坑其实还不算常见,更常见的坑是n*1的或者1*n的矩阵和n个元素的向量不是一回事
初学者在这个地方被坑的更多些……

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
板凳
发表于 2019-6-23 18:19:39 | 显示全部楼层
fcode 发表于 2019-6-23 17:42
可以用
k=sum(matmul(a,transpose(a))) 呀

唔,还是你这个办法简洁,我咋就没想到呢……
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-7 21:38

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表