2014-11-03 23 views
-1

我试图在增量步骤中构建数组。我猜测必须有一个类似于matlab矢量建筑的功能,例如,向量(1:0.1:2),它构建一个向量,并以0.1的步长填充1到2的值。有没有办法在Fortran中做到这一点?以小于1的增量构建数组 - Fortran

+0

更多地解释你的意思。也许用一个例子。 – 2014-11-03 07:12:49

+0

例如,我试图建立一个数组,包含5到20之间的值,以0.2的步长递增,而不是整数值,即数值为5,5.2,5.4 ..... 19.6,19.8,20的数组。我猜他们必须是某种形式的循环,但我不确定如何使循环迭代本身的步长小于1 ... – Joey 2014-11-03 07:33:28

+1

用数组示例编辑您的问题。该阵列就够了,避免了口头上的口头说明。 – 2014-11-03 07:56:00

回答

2

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

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 

出来:

1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 
+0

这正是我要找的,谢谢!快速的问题,我用这个作为基础写了一篇文章,但现在我试图将结果写入文件。但是,似乎没有让我这样做;有没有一种方法来格式化分配的数组,以便我可以把结果放入一个文件中以便以后读取? – Joey 2014-11-03 18:00:55

+2

如果您还有其他特定问题,可以使用代码和错误说明打开一个新问题。 – credondo 2014-11-03 18:46:49