请使用fortran写一个三维离散高斯分布的数据。
时间: 2024-04-20 07:27:42 浏览: 176
三维离散数据
下面是使用Fortran编写的一个三维离散高斯分布数据的示例代码:
```fortran
program generate_gaussian_data
implicit none
integer, parameter :: nx = 10 ! x轴方向网格数
integer, parameter :: ny = 10 ! y轴方向网格数
integer, parameter :: nz = 10 ! z轴方向网格数
real, parameter :: mean = 0.0 ! 高斯分布的均值
real, parameter :: stddev = 1.0 ! 高斯分布的标准差
real :: data(nx, ny, nz) ! 存储生成的三维离散高斯分布数据
integer :: i, j, k
real :: x, y, z
! 生成三维离散高斯分布数据
do i = 1, nx
do j = 1, ny
do k = 1, nz
x = (i - nx/2) / (nx/2)
y = (j - ny/2) / (ny/2)
z = (k - nz/2) / (nz/2)
data(i, j, k) = exp(-(x*x + y*y + z*z) / (2.0 * stddev**2)) / (sqrt(2.0 * pi) * stddev)
end do
end do
end do
! 输出生成的数据
do i = 1, nx
do j = 1, ny
do k = 1, nz
write(*, '(3F8.4)') data(i, j, k)
end do
end do
end do
end program generate_gaussian_data
```
这段代码生成了一个大小为`nx * ny * nz`的三维数组`data`,其中每个元素表示对应位置处的高斯分布值。均值和标准差可以根据需要进行调整。程序通过遍历三维空间中的每个网格点,计算其对应的坐标,并使用高斯分布的公式计算该点处的值。最后,程序将生成的数据输出到屏幕上。你可以根据需要将数据写入文件或进行其他操作。
阅读全文