我想创建一个4x4数组,只在 fortran95 中随机填充+1或-1。我发现了一个可以生成数字的帖子:
program rand_test
use,intrinsic :: ISO_Fortran_env
real :: r(6)
integer :: i(6)
! call init_random_seed() would go here
call random_number(r)
i = -1 + FLOOR(3*r) ! n=-1 and m=1
print *, i
end program
然而,这包括我不想要的0。是否可以删除0,如果是,如何?
答案 0 :(得分:2)
对于数组中的每个元素,随机生成0或1,将其乘以2,减去1。
答案 1 :(得分:1)
这基本上是@Andrew Morton所建议的。下面是执行您想要的代码
program test_rand
implicit none
real ::r(4,4)
integer :: i(4,4)
! call init_random_seed() would go here
call random_number(r)
i = nint(r)*2-1 ! n=-1 and m=1
print *, i
end program