integer::a(1,3)
a(1,:)=[1,2,3]
write(*,*) matmul(transpose(a),a)
fcode 发表于 2019-6-23 16:06
[mw_shl_code=fortran,true]integer::a(1,3)
a(1,:)=[1,2,3]
write(*,*) matmul(transpose(a),a)[/mw_shl_c ...
妙木山养娃人 发表于 2019-6-23 17:04
您好!您这个是用列*行得到一个3*3的数组,好像计算没问题。但如果调换顺序,计算行*列的时候,结果是14 ...
liudy02 发表于 2019-6-23 17:37
这就是Fortran这类强类型语言的一个大坑在此
1*3的矩阵和3*1的矩阵得到的东西,程序认为是一个1*1的矩阵 ...
fcode 发表于 2019-6-23 17:42
可以用
k=sum(matmul(a,transpose(a))) 呀
liudy02 发表于 2019-6-23 17:38
这个坑其实还不算常见,更常见的坑是n*1的或者1*n的矩阵和n个元素的向量不是一回事
初学者在这个地方被坑 ...
fcode 发表于 2019-6-23 17:42
可以用
k=sum(matmul(a,transpose(a))) 呀
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |