gpt4 book ai didi

csv - 从 fortran 中的 .csv 文件读取数据

转载 作者:行者123 更新时间:2023-12-04 14:08:18 28 4
gpt4 key购买 nike

我正在使用一个软件,它给我一个 .csv 作为输出我想借助 Fortran 代码读取的文件。 .csv文件具有以下形式:

balance for 1. Unit: kg N/ha
___________________________________________________________________________________________________________________________________________________________________________
,N Pools,,,,,Influx N,,,,,Efflux N
Day,iniSON,iniSIN,endSON,endSIN,dSoilN,Deposit,Fertilizer,Manure,Litter,Sum-In...(**20 parameters**)
___________________________________________________________________________________________________________________________________________________________________________
1,5973.55, 20.20,5973.51, 20.23, -0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, -0.00, 0.00
.........

我有 365 行这样的值。

例子

为了阅读第一行,我使用了以下内容:
program od

implicit none
integer :: res
character(LEN=200) :: head1,head2,head3,head4,head5
open(10, file="Balance_N_1.csv",access='sequential',form="formatted",iostat=res)
open(9,file="out.txt")
read(10,fmt='(A)', iostat=res) head1,head2,head3,head4,head5
write(9,*) head1,head2,head3,head4,head5

end program od

如何读取后面的数据并将它们放入矩阵中,以便我可以使用某些值执行计算?

最佳答案

如果我读对了你的问题,你有一个包含 365 行数据的文件,每行有 1 个整数(天数)和 20 个实数,每行上的值以逗号分隔。你可以像这样声明一个数据数组;

real, dimension(365,20) :: data_array

和一个整数变量,如
integer :: line_no

然后,一旦您阅读或跳过文件顶部的文本行,您就可以像这样读取数组:
do ix = 1,365
read(10,*) line_no, data_array(ix,:)
end do

通过使用 *对于 read 语句中的格式,您使用的是列表导向输入,该输入既快速又简单,但有些限制。但是,如果您的数据文件干净且一致,这应该就足够了。

如果列表导向输入不起作用,则必须使用编辑描述符,例如(未经测试)
read(10,'(i4,20f9.4)') line_no, data_array(ix,:)

关于csv - 从 fortran 中的 .csv 文件读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com