fortran中matmul
时间: 2024-01-17 16:02:47 浏览: 120
Fortran.rar_fortran中arr
在Fortran中,matmul函数用于矩阵乘法。它的语法如下:
matmul(matrix1, matrix2 [, matrix_result])
其中,matrix1和matrix2是要相乘的两个矩阵,matrix_result是可选的,表示输出结果的矩阵。如果省略matrix_result,则matmul函数会返回矩阵乘积。
要注意的是,matrix1和matrix2的维度必须满足矩阵乘法的要求。例如,如果matrix1是一个m×n的矩阵,matrix2是一个n×p的矩阵,则它们可以相乘,结果是一个m×p的矩阵。
以下是一个使用matmul函数的示例:
```
program matmul_example
implicit none
integer :: m, n, p, i, j
real, dimension(:,:), allocatable :: matrix1, matrix2, result
! 初始化矩阵的维度和元素
m = 2
n = 3
p = 2
allocate(matrix1(m,n))
allocate(matrix2(n,p))
matrix1 = reshape([1,2,3,4,5,6], [m,n])
matrix2 = reshape([1,0,2,1,3,2], [n,p])
! 计算矩阵乘积
result = matmul(matrix1, matrix2)
! 输出结果
write(*,*) "Matrix 1:"
do i = 1, m
write(*,'(6f5.2)') matrix1(i,:)
end do
write(*,*)
write(*,*) "Matrix 2:"
do i = 1, n
write(*,'(6f5.2)') matrix2(i,:)
end do
write(*,*)
write(*,*) "Result:"
do i = 1, m
write(*,'(6f5.2)') result(i,:)
end do
! 释放内存
deallocate(matrix1)
deallocate(matrix2)
deallocate(result)
end program matmul_example
```
这个示例程序计算了两个矩阵的乘积,并输出了结果。注意,为了使用matmul函数,我们需要先声明矩阵的维度,并使用allocate函数为其分配内存。程序结束后,我们还需要使用deallocate函数释放内存。
阅读全文