Arrays 以小于1的增量构建数组-Fortran

Arrays 以小于1的增量构建数组-Fortran,arrays,fortran,Arrays,Fortran,我正在尝试以增量步骤构建阵列。我猜一定有一个函数类似于matlab的向量构建,例如向量(1:0.1:2),它构建一个向量,并在0.1步中用1到2的值填充它。在fortran中有这样做的方法吗?您可以使用数组构造函数,如下代码所示: program main implicit none real,allocatable,dimension(:) :: vec real :: a,inc integer

我正在尝试以增量步骤构建阵列。我猜一定有一个函数类似于matlab的向量构建,例如向量(1:0.1:2),它构建一个向量,并在0.1步中用1到2的值填充它。在fortran中有这样做的方法吗?

您可以使用数组构造函数,如下代码所示:

program main
  implicit none
  real,allocatable,dimension(:) :: vec
  real                          :: a,inc
  integer                       :: n ,i
  a = 1.    ! initial value
  inc = 0.1 ! increment value
  n = 11    ! number of values  
  allocate(vec(n))
  vec = [(a + (i-1) * inc, i=1,n)]  ! array constructor
  write(*,'(11f7.2)') vec
end program main
输出:


多解释一下你的意思。例如,我试图构建一个数组,包含5到20之间的值,以0.2的步长递增,而不是整数值,即一个值为5、5.2、5.4….的数组。。。。。19.6, 19.8, 20. 我猜他们一定是涉及到某种do循环,但我不确定如何使do循环以小于1的步骤进行自身迭代…请使用数组示例编辑您的问题。数组足够了,避免复杂的口头解释。这正是我想要的,谢谢!快速提问,我用这个作为基础写了一篇文章,但现在我正试图将结果写入一个文件。然而,它似乎不会让我这么做;是否有一种方法可以格式化分配的数组,以便我可以将结果放在一个文件中以供以后读取?如果您有其他特定问题,您可以使用代码和错误描述打开一个新问题。
1.00   1.10   1.20   1.30   1.40   1.50   1.60   1.70   1.80   1.90   2.00