Fortran Coder

查看: 10738|回复: 5
打印 上一主题 下一主题

[数值问题] 数组赋值的问题

[复制链接]

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
跳转到指定楼层
楼主
发表于 2015-8-18 14:31:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
    Do  n=1,10000
        read(13,*,iostat = ierr)x,y,z
        if (ierr/=0) exit
        xyzn(n,1)=x
        xyzn(n,2)=y
        xyzn(n,3)=z
        write(14,'(3E12.4E3)') xyzn(n,3)
    End Do

13为一个存储三个坐标的数据文件,每行都有3列数据,不知道多少行,但是少于10000行,现在想从中读取数据赋值给一个可分配大小的二维数组xyzn,能够运行,没有提示错误,但是写出来的数组xyzn是空的,请问怎么解决。多谢。


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
沙发
发表于 2015-8-18 21:17:15 | 只看该作者
第一步。定义一个可分配数组。
第二步。通过循环获取文件的行数 N。
第三步。分配可分配数组。
第四步。再次读取该文件。

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
板凳
 楼主| 发表于 2015-8-18 21:19:02 | 只看该作者
百事可乐 发表于 2015-8-18 21:17
第一步。定义一个可分配数组。
第二步。通过循环获取文件的行数 N。
第三步。分配可分配数组。

我自己弄的,里面倒是有数据,但全部是0,找不出原因

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
地板
 楼主| 发表于 2015-8-18 21:22:45 | 只看该作者
liux578 发表于 2015-8-18 21:19
我自己弄的,里面倒是有数据,但全部是0,找不出原因

    Real,Dimension(64,3) :: xyzn  
   
    Call Gp_process
    Open(13,File="gp_pos_new.txt")
    Do i=1,64
    read(13,*,iostat = ierr) xyzn
        xyzn(i,1)=x
        xyzn(i,2)=y
        xyzn(i,3)=z
    if (ierr/=0) exit
    write(14,'(1E11.4E2,2E12.4E3)')xyzn
    End Do

我就弄了个简单的,用了64行,这样写,xyn.txt是空的

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
5#
发表于 2015-8-18 21:27:15 | 只看该作者
你应该读 x , y , z ,而不能 read(13,*) xyzn,因为 xyzn 是数组。你不能每行都读整个数组。

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
6#
 楼主| 发表于 2015-8-19 08:55:24 | 只看该作者
百事可乐 发表于 2015-8-18 21:27
你应该读 x , y , z ,而不能 read(13,*) xyzn,因为 xyzn 是数组。你不能每行都读整个数组。 ...

嗯,搞定了,感谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-29 23:40

Powered by Tencent X3.4

© 2013-2024 Tencent

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