Arrays 以小于1的增量构建数组-Fortran
我正在尝试以增量步骤构建阵列。我猜一定有一个函数类似于matlab的向量构建,例如向量(1:0.1:2),它构建一个向量,并在0.1步中用1到2的值填充它。在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
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