Arrays 用fortran将两个数组相乘
我正在尝试使用fortran将两个数组相乘,下面是我的代码Arrays 用fortran将两个数组相乘,arrays,fortran,matrix-multiplication,Arrays,Fortran,Matrix Multiplication,我正在尝试使用fortran将两个数组相乘,下面是我的代码 program multiplyarray implicit none ! Declare Variables integer, dimension(2,3 :: first_array integer, dimension(3,2) ::second_array integer, dimension(2,2) :: resultant_array integer:: i, j, a, b, k,
program multiplyarray
implicit none
! Declare Variables
integer, dimension(2,3 :: first_array
integer, dimension(3,2) ::second_array
integer, dimension(2,2) :: resultant_array
integer:: i, j, a, b, k, product
! Generating values for array
a = 2
do i = 1,2
do j = 1,3
first_array(i,j) = a
a = a + 2
end do
end do
print*,first_array
do i = 1,3
do j = 1,2
b = 0
second_array(i,j) = b
b = b + 3
end do
end do
! Multiplying both arrays
do i = 1,2
do j = 1,2
do k = 1,3
product = product + first_array(i,k) * second_array(k,j)
end do
resultant_array (j,i) = product
end do
end do
! Displaying the resultant matrix
do i = 1,2
do j = 1,2
print *,resultant_array(i,j)
end do
end do
end program multiplyarray
可能是什么错误?我没有得到单独的矩阵,所以我可以将它们相乘得到结果矩阵。第一个矩阵为0,而第二个矩阵的结果也为0。第二个数组将始终为0
b = 0
second_array(i,j) = b
b = b + 3
您总是将b
设置为零。行b=b+3
无效,因为b
始终设置为零
当second_array
为零时,乘积也将为零
正如HighPerformanceMark所建议的,您可以使用
matmul
轻松地将两个矩阵相乘,或者使用BLAS库轻松但快速地相乘
result = matmul(first_array, second_array)
尝试使用matmul函数 matmul(第一个数组,第二个数组)=结果数组
打印*,结果数组发生了什么?你的结果是什么?有错误信息吗?哪些错误消息?您需要初始化
产品
您今天上午是否回答了我的问题?我收到通知并看到了答案,但现在它似乎已经消失,我无法访问它。你删除了它还是我这边的问题?如果没有,你能再贴一次答案吗?非常感谢@积分是的,我把它删掉了。我犯了一个错误。哦,我明白了。好吧,顺便说一句,你的错误代码可能比我正确的代码要好几光年,你组织/构造代码的方式对我仍然很有帮助。无论如何谢谢你的帮助!这是回答还是评论?它不是有效的代码。但它不是有效的Fortran。