我是Fortran的新手,我正在尝试编写一个程序来读取.txt文件,其中我有24480行和~6000列。 在每一行(作为个体)我有基因型指示为1和2,如果,例如,在第一行,我有204基因型,这个基因型的前半部分(= 102)属于个体的父亲和后半部分的基因型属于个人的大坝。另外,每行的值不相等。那么,我如何定义Fortran逐行读取这个文件并将每一行分成两行并放在每个元素旁边(i)到均值+ i。
例如,我将两行文件显示为简短: row1:112122121112122111112121111211122121111121 第2行:21112111112112222121112121211121221212121111121112 1212
等等。 任何帮助将提前感激。
答案 0 :(得分:2)
你需要将每一行读作字符串,用len_trim()获取它的长度,然后将每一半读成整数数组:
character*10000 line
read(unit,'(a)')line
len=len_trim(line)
read(line,'(10000i1)')a(:len/2),b(:len/2)