【问题标题】:Generating an array of random numbers in the range of [-1, 1]生成 [-1, 1] 范围内的随机数数组
【发布时间】:2017-03-01 23:55:27
【问题描述】:

我正在尝试在二维数组中的 Fortran 中生成 [-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

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

【问题讨论】:

    标签: fortran gfortran


    【解决方案1】:

    根据Random array / matrix intitialisation in Fortran(你读过吗?)你可以这样做

     xmin = -1
     xmax =  1
     call random_number(x)
     x = xmin + (xmax-xmin)*x
    

    顺便说一句,数字将来自区间[-1,1),而不是[-1,1]

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 2011-08-25
      • 1970-01-01
      • 2013-11-13
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多