24小时热门版块排行榜    

CyRhmU.jpeg
查看: 5169  |  回复: 16

digghost

木虫 (著名写手)

[交流] 【求助】Fortran 如何读取文件中特定行的内容已有7人参与

现有一个文件,是100列,300万行的矩阵,我想读特定行,例如300行的数据,请问应如何用fortran处理
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主


resonant(金币+1):信息费:-) 2010-06-23 16:40:05
以前本版好像讨论过类似的问题,建议仔细找一找。
2楼2010-06-23 11:35:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangzhiguang

至尊木虫 (文坛精英)


余泽成(金币+1):谢谢参与应助! 2010-06-24 10:29:19
用do命令不就可以吗?
open(文件)
do I=1,3000000
    if (i==300) then
      do j=1,100     
          read(*,*) x
      end do
     exit
     end if   
end do
不知道,我是否正确的理解你的意思了。上面的程序中exit是为了避免在进行循环。

[ Last edited by zhangzhiguang on 2010-6-24 at 12:14 ]
好好学习,天天向上!
3楼2010-06-24 09:49:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hrzhou

铁杆木虫 (著名写手)

一品黄梅


余泽成(金币+1):谢谢参与应助! 2010-06-27 14:57:56
先用DO循环跳过前299行,再读取第300行不就得了?
4楼2010-06-27 13:10:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csyky2007

木虫 (著名写手)


余泽成(金币+1):谢谢参与应助! 2010-06-27 14:58:09
在彭国伦的书中第九章讲到,文件有顺序访问和直接访问,采用直接访问的话,你这个问题就可以高效的解决掉了。(彭国伦的书在这个论坛上有)
如果每一行数据的长度是x,那么你采用直接访问的手段,从299x+1读到300x,就读出第300行的数据了。
求放心!
5楼2010-06-27 14:29:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

digghost

木虫 (著名写手)

nono2009:建议“引用回复该帖”,以便别人能收到你回复的提示。 2010-06-29 16:27:03
我的意思是不用do循环,直接读指定行数的数据,因为我要算每一列得自相关函数,就是求第一行与第二行的点积,加上第二行第三行的点积-----第300万,第300万+1的点积,然后平均,得到一个时间步长的自相关函数,求第1行与第3行的点积,加上第2行第4行的点积-----第300万,第300万+2的点积,然后平均,得到两个时间步长的自相关函数值,依次类推,求第500个自相关函数值.所以用do的方法肯定不行.楼上的方法没明白,能给个语句么?
呵呵了
6楼2010-06-29 16:21:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangzhiguang

至尊木虫 (文坛精英)


余泽成(金币+1):谢谢参与应助! 2010-06-29 19:17:53
open(unit=10, file=filename, access="direct", form="formatted", recl=几, tatus="old"
read(10, fmt="(格式)", rec=想要的行数, IOSTAT=error)  x
其中“recl=几”是你要读文件的每一行的字符数,如果是文本文件,则要在相应字符数上加2,你试一下吧
好好学习,天天向上!
7楼2010-06-29 18:51:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzxin111

铜虫 (初入文坛)


resonant(金币+1):感谢参与,你怎么两年还是新虫啊,难道是马甲?... 2010-07-09 23:02:27
彭国伦编的书fortran95程序设计中有,你看一下就知道了
8楼2010-07-02 19:57:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lifang2009

银虫 (小有名气)


resonant(金币+1):感谢参与 2010-07-09 23:02:57
六楼的方法应该可行
9楼2010-07-09 13:34:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

digghost

木虫 (著名写手)

余泽成:建议楼主引用回帖! 2010-07-13 20:57:44
请问字符数是什么意思,空格也算么
呵呵了
10楼2010-07-13 14:35:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 digghost 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见