fortran如何获取文件中指定列的数据
我想读取给定第二列的数据(文件数据如下):
4.902380 24.09600 19.19362
5.117340 24.64800 19.53066
5.376030 24.58470 19.20867
1.905530 7.827580 5.922050
1.605610 8.201700 6.596090
1.946720 7.271230 5.324510
1.742370 10.20920 8.466830
1.901910 9.991350 8.089440
1.525720 10.93020 9.404480
1.705040 12.12240 10.41736
1.564290 11.48820 9.923910
1.638400 12.97950 11.34110
1.404010 20.71810 19.31409
1.571210 21.79690 20.22569
1.633620 23.00130 21.36768
1.478230 11.46750 9.989270
1.470280 14.52380 13.05352
1.670590 15.37190 13.70131
编写的程序为:
program main
implicit none
integer i
real ::a(10,3),b(10)
open(1,file='C:\Users\user\Desktop\11\zongie.txt')
do i=1,10
read(1,*) a(i,2)
b(i)=a(i,2)
enddo
close(1)
write(*,*) b
end
但是运行后总是输出的是第一列的数据,不知道程序哪里有问题,请高手帮忙看看,谢谢! 返回小木虫查看更多
read(1,*) a(i,2)
这个代码会读取编号1文件中某行的所有数据,然后逐个赋值给后面的变量列表。但由于变量列表只有一个变量,所以只会将该行数据中的第一个赋值给变量,也就是你的第一列数据。
改成这样应该就行了,其他不用变:
read(1,*) a(i,
另:文件编号不要用个位数,可能会与系统默认编号冲突
read(1,*) a(i,1:3)
上面的冒号被系统吃了。。。
你这个有规律,可以采用代码。
Do j=1,3
Do i=1,10
Read(1,*)a(i,j)
Enddo
Enddo
B(=a(:,2)
Fortran是按列读取数据的!
手机打字真麻烦!!
双循环就可搞定
明白了,谢谢
,