我试图在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
有人能就我的问题给我一些建议吗?
答案 0 :(得分:4)
根据Random array / matrix intitialisation in Fortran(你读过那个吗?)你可以做到
call random_number(x)
x = 2*x - 1
BTW,数字将来自区间[-1,1)
,而不是[-1,1]
。