爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6614|回复: 16

[求助] 数据读取

[复制链接]

新浪微博达人勋

发表于 2013-3-31 13:13:02 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
用Fortran从txt中读取数据,假如一行有6个数,每个数有一位,后面有一个空格,有30行,我想读入到一个30*6的数组中,设置了recl=14,read命令怎么写啊,总是读不进去,比较纠结,求指点
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-31 13:26:26 | 显示全部楼层
为啥要用recl?你把二进制文件写在txt里面了?如果不是的话,只有设备号和文件名,其余全缺省然后直接read设备号和*就可以读了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-31 13:35:53 | 显示全部楼层
二进制数据采用recl  如果是ASCII的数据  不用设置recl
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-31 13:39:35 | 显示全部楼层
为什么要用recl呢?直接读不行么?读到一维数组中,如果你想变为b(30,6),可以这样:b(30,6)=reshape(a,/30,6/),其中a(180)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-31 13:43:38 | 显示全部楼层
楼主有关编程作图的提问请在 编程作图提问版块提问 谢谢~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-31 14:01:20 | 显示全部楼层

我想直接读取,因为数据中有的行是别的东西,不全是数,ps刚开始用这个论坛,这不是编程作图区吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-31 14:04:09 | 显示全部楼层
lqouc 发表于 2013-3-31 13:26
为啥要用recl?你把二进制文件写在txt里面了?如果不是的话,只有设备号和文件名,其余全缺省然后直接read设 ...

骞哥,那个数据不全是数,我想直接读取,不是二进制数据,就是个正常的十进制比如一行是这样的
1 2 3 4 5 6 然后一次读一行,放到一个x*6的矩阵里,就不会了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-31 14:05:15 | 显示全部楼层
topmad 发表于 2013-3-31 13:35
二进制数据采用recl  如果是ASCII的数据  不用设置recl

不全是数,想直接读取
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-31 14:19:42 | 显示全部楼层
雍正27 发表于 2013-3-31 14:04
骞哥,那个数据不全是数,我想直接读取,不是二进制数据,就是个正常的十进制比如一行是这样的
1 2 3 4  ...

我勒个去啊,你还认识我啊。咱快别在这丢人了,就我这臭水平。话说不全是数字的话你可以用字符型读,一下读一整行,然后截取字符段转换为数字就可以了。如果全是数字你就列之间用显示循环,行内用隐式循环。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-3-31 14:31:18 | 显示全部楼层
open(1,file="xx.txt")
do i=1,30
read(1,*)(x(i,j),j=1,6)
enddo
close(1)

这就是楼上几位说的程序,显式循环read行,隐式循环read列
x的数据类型自己定义就可以了···当然,这里面可以自行嵌套混搭风格的read方法,比如:
open(1,file="xx.txt")
do i=1,30
read(1,*)(y(i,j),j=1,2), (x(i,j),j=1,4)
enddo
close(1)
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表