24小时热门版块排行榜    

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

duhb655

金虫 (著名写手)

[求助] fortran 怎么按行读取数据(有小例子) 已有3人参与

深度              温度              电导率
50.00000          28.30186          54.27303
51.00000          28.28920          54.27039               
52.00000          28.27396          54.26752                 
53.00000          28.25474          54.27453                  
54.00000          28.23691          54.28119                 
55.00000          28.23033          54.29279                  
56.00000          28.22947          54.30813                  
57.00000          28.21856          54.30784               
58.00000          28.20773          54.31368                 
59.00000          28.19656          54.32171                  
60.00000          28.15063          54.28722
我用的是网上的一个数据,我写的程序为:
CODE:
PROGRAM TE
REAL::A(11,3)
INTEGER ::I,J
CHARACTER C
OPEN(13,FILE='Result.txt')
DO J=1,1
   READ(13,*)C
ENDDO
OPEN(12,FILE='result1.TXT')
DO I=1,11
   READ(13,*) A(I,1:3)
ENDDO
WRITE(12,"(3f10.5)") A
CLOSE(13)
CLOSE(12)
END

得到的结果是:
50.00000  51.00000  52.00000
  53.00000  54.00000  55.00000
  56.00000  57.00000  58.00000
  59.00000  60.00000  28.30186
  28.28920  28.27396  28.25474
  28.23691  28.23033  28.22947
  28.21856  28.20773  28.19656
  28.15063  54.27303  54.27039
  54.26752  54.27453  54.28119
  54.29279  54.30813  54.30784
  54.31368  54.32171  54.28722
我想得到原来一样的数据,我看结果意思是按列读取,怎么能按行读取啊,或怎么能得到和原来一样的矩阵,如果可能的话,不要用A1,A2,A3三列来做,因为我的数据有很多列,谢谢了!

[ Last edited by jjdg on 2014-2-9 at 10:07 ]
回复此楼

» 收录本帖的淘帖专辑推荐

经验

» 猜你喜欢

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

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

duhb655

金虫 (著名写手)

引用回帖:
2楼: Originally posted by jjdg at 2014-02-09 10:13:53
你想用CHARACTER, INTEGER 还是什么读入??
如果用CHARACTER..
character(len=100):: dummy
read(1,'(a)') dummy
这样就可以了.
或者
比如你要将12 3445 345 3809 97 87赋给a b c d e f五个变量
read(1,*)a,b ...

谢谢版主,
1,第一个C只是不想要第一行,只要后面的数据;
2,是原始数据有几列就得用几个变量吗?不会吧,我刚接触F,不懂。我在提问前也上网到处找了的,我看好多也都是这样做啊,但为什么我的得出来的结果不对啊?
3,我用三个变量REAL(11)::A1,A2,A3得出的结果和我之前的结果是一样的,错的啊?
求指教!
3楼2014-02-09 10:25:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 22 个回答

jjdg

版主 (知名作家)

优秀版主

【答案】应助回帖

感谢参与,应助指数 +1
你想用CHARACTER, INTEGER 还是什么读入??
如果用CHARACTER..
character(len=100):: dummy
read(1,'(a)') dummy
这样就可以了.
或者
比如你要将12 3445 345 3809 97 87赋给a b c d e f五个变量
read(1,*)a,b,c,d,e
如果你在read后面只跟了一个变量名,那么就只能读取一个;你有多少个就把1:3改了即可
努力学习!以正当途径!获得需要的知识!
2楼2014-02-09 10:13:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
duhb655: 金币+10, ★★★很有帮助 2014-02-09 23:49:27
xzhdty: 金币+1, 谢谢参与 2014-02-10 08:48:22
jjdg: 编辑内容 2014-02-13 11:49
读的并没有错,也是按行读的,Fortran 还没有高级到可以按列来读入数据的

错的在于你打印的那句话:
WRITE(12,"(3f10.5)" ) A
这句话只是告诉程序把 A 这个 矩阵中的数据打出来,每行三个实数

但你要清楚的是 Fortran 内部的矩阵存贮是列优先的,所以,它先把第一列拿出来打印,打印完了打印第二列,再打印第三列

你要想按读的方式打印,就要显示地写成循环或者使用 WRITE 支持的隐式循环……

[ Last edited by jjdg on 2014-2-13 at 11:49 ]
4楼2014-02-09 13:21:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

polypro

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2014-02-10 08:48:33
接3L,将write那一句替换就行了
DO I=1,11
   write(13,*) A(I,1:3)
ENDDO

» 本帖已获得的红花(最新10朵)

泉涸,鱼相与处于陆,相呴以湿,相濡以沫,不如相忘于江湖。
5楼2014-02-09 15:07:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] [复试调剂]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
[考研] 211本,11408一志愿中科院277分,曾在中科院自动化所实习 +3 Losir 2026-03-12 4/200 2026-03-16 21:52 by Losir
[考研] 材料专硕326求调剂 +5 墨煜姒莘 2026-03-15 5/250 2026-03-16 21:30 by 木瓜膏
[考研] 化学调剂0703 +8 啊我我的 2026-03-11 8/400 2026-03-16 17:23 by 我的船我的海
[考研] 环境工程调剂 +6 大可digkids 2026-03-16 6/300 2026-03-16 17:16 by barlinike
[考研] 311求调剂 +5 26研0 2026-03-15 5/250 2026-03-16 16:21 by a不易
[考研] 070300化学学硕求调剂 +6 太想进步了0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[考研] 277材料科学与工程080500求调剂 +3 自由煎饼果子 2026-03-16 3/150 2026-03-16 14:10 by 运气yunqi
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +7 Ncdx123456 2026-03-13 8/400 2026-03-16 12:15 by karry wen
[基金申请] NSFC申报书里申请人简历中代表性论著还需要在申报书最后的附件里面再上传一遍吗 20+5 NSFC2026我来了 2026-03-10 14/700 2026-03-15 23:53 by 不负韶华的虎
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 274求调剂 +4 时间点 2026-03-13 4/200 2026-03-15 15:29 by Rambo13
[考研] 求材料调剂 085600英一数二总分302 前三科235 精通机器学习 一志愿哈工大 +4 林yaxin 2026-03-12 4/200 2026-03-13 22:04 by 星空星月
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 【考研调剂求收留】 +3 Ceciilia 2026-03-11 3/150 2026-03-13 20:18 by JourneyLucky
[考研] 求调剂 +5 一定有学上- 2026-03-12 5/250 2026-03-13 18:31 by ms629
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-12 3/150 2026-03-13 14:18 by JourneyLucky
[考博] 福州大学杨黄浩课题组招收2026年专业学位博士研究生,2026.03.20截止 +3 Xiangyu_ou 2026-03-12 3/150 2026-03-13 09:36 by duanwu655
信息提示
请填处理意见