Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 用fortran将两个数组相乘_Arrays_Fortran_Matrix Multiplication - Fatal编程技术网

Arrays 用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,

我正在尝试使用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, 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。