Fortran 生成[-1,1]范围内的随机数数组

Fortran 生成[-1,1]范围内的随机数数组,fortran,gfortran,Fortran,Gfortran,我试图用Fortran语言在2D数组中生成[-1,1]范围内的随机数。我知道为了生成-1和1范围内的随机数,我必须将数字重新缩放到[0,2],但我不知道如何用randomReal填充矩阵x(10,10)。下面是代码 program random implicit none real :: rnd, randomReal real, dimension (10,10) :: x integer :: L, i L = 10 ! length of sequence do i = 1

我试图用Fortran语言在2D数组中生成[-1,1]范围内的随机数。我知道为了生成-1和1范围内的随机数,我必须将数字重新缩放到[0,2],但我不知道如何用
randomReal
填充矩阵
x(10,10)
。下面是代码

program random
implicit none
real :: rnd, randomReal
real, dimension (10,10) :: x
integer :: L, i
L = 10         ! length of sequence
do i = 1, L
  call random_number(rnd)
  randomReal = 2*rnd-1
  print *, "random real = ", randomReal


end do
       write(*,*) (x(L,L), L=1,10) ! assign random numbers to matrix x
       call random_number(x)
    end program random
有人能就我的问题给我一些建议吗?

根据(你读过吗?)你能做什么

 xmin = -1
 xmax =  1
 call random_number(x)
 x = xmin + (xmax-xmin)*x
顺便说一句,数字将来自间隔
[-1,1)
,而不是
[-1,1]

(你读到了吗?),你可以这样做

 xmin = -1
 xmax =  1
 call random_number(x)
 x = xmin + (xmax-xmin)*x
顺便说一句,数字将来自区间
[-1,1)
,而不是
[-1,1]