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

时间:2017-03-01 23:55:27

标签: fortran gfortran

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

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

有人能就我的问题给我一些建议吗?

1 个答案:

答案 0 :(得分:4)

根据Random array / matrix intitialisation in Fortran(你读过那个吗?)你可以做到

 call random_number(x)
 x = 2*x - 1

BTW,数字将来自区间[-1,1),而不是[-1,1]