回 帖 发 新 帖 刷新版面

主题:数组的存储

新手求助
    我现在有n个数据文件,每一个都是9维数组,我想把所有这些文件里的第9维数据提全都取出来,并且按着顺序全部存储到一个文件中,这应该怎么实现?

回复列表 (共5个回复)

沙发

9维数组?fortran只最大支持7维数组。

板凳

我猜楼主应该是把数组"维度"理解错了吧.

3 楼


不好意思没有表达清楚,是二维数组,(48,9)的数组,我只要第9列数据

4 楼

这个要看数据文件的格式,如果是如下,数据长度没有固定的,只用空格或逗号分隔的
1.0 2.00 3.000 4.0000 5.00000 6.00000 7.0 8.0 90.0
......

可以用以下读写
open(9,file="data.txt")
do i=1,n
read(9,*)a1,a2,a3,a4,a5,a6,a7,a8,a(i) 
!a1~a8是临时的不起作用的变量,a(i)是需要的用于存放第9列的数组
end

5 楼

[quote]这个要看数据文件的格式,如果是如下,数据长度没有固定的,只用空格或逗号分隔的
1.0 2.00 3.000 4.0000 5.00000 6.00000 7.0 8.0 90.0
......

可以用以下读写
open(9,file="data.txt")
do i=1,n
read(9,*)a1,a2,a3,a4,a5,a6,a7,a8,a(i) 
!a1~a8是临时的不起作用的变量,a(i)是需要的用于存放第9列的数组
end

[/quote]
也可以试着写成这样,不管前9个数是整数还是实数,都用字符存储,第九列的认为是实数
program read
implicit none

real :: C9(48)
integer :: i
character :: a(8)  !这是个字符数组,每个变量只有一个字符长度,读取时会只读每个数据的第一个字符,起到跳过的作用
open(11,file="data.txt")
do i=1,48
read(11,*)a,C9(i)
enddo

end

试了一下,不论分隔的是逗号还是空格,不论最后列数据是整数还是实数,都是可以的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册