数组赋值的问题
代码如下:Don=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是空的,请问怎么解决。多谢。
第一步。定义一个可分配数组。
第二步。通过循环获取文件的行数 N。
第三步。分配可分配数组。
第四步。再次读取该文件。 百事可乐 发表于 2015-8-18 21:17
第一步。定义一个可分配数组。
第二步。通过循环获取文件的行数 N。
第三步。分配可分配数组。
我自己弄的,里面倒是有数据,但全部是0,找不出原因 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是空的 你应该读 x , y , z ,而不能 read(13,*) xyzn,因为 xyzn 是数组。你不能每行都读整个数组。 百事可乐 发表于 2015-8-18 21:27
你应该读 x , y , z ,而不能 read(13,*) xyzn,因为 xyzn 是数组。你不能每行都读整个数组。 ...
嗯,搞定了,感谢
页:
[1]