24小时热门版块排行榜    

查看: 1644  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

carrolyb

新虫 (初入文坛)

[求助] fortran如何获取文件中指定列的数据 已有2人参与

我想读取给定第二列的数据(文件数据如下):
  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
但是运行后总是输出的是第一列的数据,不知道程序哪里有问题,请高手帮忙看看,谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

carrolyb

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by 浔荆 at 2015-10-26 11:46:06
read(1,*) a(i,1:3)
上面的冒号被系统吃了。。。

明白了,谢谢
8楼2015-10-29 18:27:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

浔荆

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
read(1,*) a(i,2)
这个代码会读取编号1文件中某行的所有数据,然后逐个赋值给后面的变量列表。但由于变量列表只有一个变量,所以只会将该行数据中的第一个赋值给变量,也就是你的第一列数据。
改成这样应该就行了,其他不用变:
read(1,*) a(i,

另:文件编号不要用个位数,可能会与系统默认编号冲突
2楼2015-10-26 11:45:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

浔荆

木虫 (正式写手)

【答案】应助回帖

read(1,*) a(i,1:3)
上面的冒号被系统吃了。。。
3楼2015-10-26 11:46:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

www.cctv

银虫 (小有名气)

你这个有规律,可以采用代码。

发自小木虫Android客户端
有幸相遇 不负相见
4楼2015-10-26 19:02:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见