fortran中matmul的用法,用两个3*3矩阵说明
时间: 2024-03-11 09:47:09 浏览: 112
好的,下面是一个更具体的例子,演示了如何使用 `matmul` 函数计算两个 $3\times 3$ 的矩阵的乘积:
```fortran
program matmul_example
implicit none
integer :: i, j
integer, parameter :: n = 3
real :: a(n,n), b(n,n), c(n,n)
! 初始化数组 a 和 b
a = reshape([1, 2, 3, 4, 5, 6, 7, 8, 9], [3, 3])
b = reshape([9, 8, 7, 6, 5, 4, 3, 2, 1], [3, 3])
! 计算矩阵乘积 c = a * b
c = matmul(a, b)
! 输出结果
write(*,*) "Matrix A:"
do i = 1, n
write(*,"(3F8.1)") (a(i,j), j = 1, n)
end do
write(*,*)
write(*,*) "Matrix B:"
do i = 1, n
write(*,"(3F8.1)") (b(i,j), j = 1, n)
end do
write(*,*)
write(*,*) "Matrix C = A * B:"
do i = 1, n
write(*,"(3F8.1)") (c(i,j), j = 1, n)
end do
end program matmul_example
```
在这个例子中,我们使用 `reshape` 函数初始化了两个 $3\times 3$ 的实数数组 `a` 和 `b`。然后,我们使用 `matmul` 函数计算了它们的矩阵乘积,并将结果存储在数组 `c` 中。最后,我们输出了数组 `a`、`b` 和 `c` 的值,以验证计算结果是否正确。
运行这个程序,输出应该如下:
```
Matrix A:
1.0 2.0 3.0
4.0 5.0 6.0
7.0 8.0 9.0
Matrix B:
9.0 8.0 7.0
6.0 5.0 4.0
3.0 2.0 1.0
Matrix C = A * B:
30.0 24.0 18.0
84.0 69.0 54.0
138.0 114.0 90.0
```
可以看到,矩阵乘积的计算结果是正确的。
阅读全文