主题:请问如何读取不定列数的数值?
大智若愚
[专家分:90] 发布于 2010-09-03 21:53:00
大家好!
我在读取数据的时候,遇到了一个问题。
假设有这样的数据:
数据总数为100个,每行都存放八个数据,到最后一行的时候,则就变成存放4个数据。请问这样的数据,应该怎么读取?
我本来想用一个变量b循环100次读取,没有成功,用一个数组a(100)的读取,也没有成功。
请问应该怎么读取?请指点一下,谢谢!
我上传了程序代码及数据文件,程序代码有点问题。数据文件的时间步长有5和10。
要实现的功能是,输入p的时候,将Pmap.dat下的pressures数据输出tecplot文件格式;
输入t的时候,将Pmap.dat下的tempreture数据输出tecplot文件格式;
最后更新于:2010-09-03 22:11:00
回复列表 (共7个回复)
沙发
大智若愚 [专家分:90] 发布于 2010-09-03 22:14:00
唉,回家慢慢想吧。
板凳
cgl_lgs [专家分:21040] 发布于 2010-09-03 23:24:00
一行一行地读就可以了,不过要加上iostat=nstat子句,否则最后一行会跳出的:)
3 楼
jstzhurj [专家分:4680] 发布于 2010-09-04 00:27:00
既然知道数据总数N,每行的数据数M个,就知道完整N/M行,最后一行剩余R=mod(N,M)个。然后不就可以控制读出么?
4 楼
大智若愚 [专家分:90] 发布于 2010-09-04 15:52:00
昨晚回去想了一下,今天又弄了一个早晨,后处理程序差不多完成了。
昨天造成数据一直没有读成功的原因是程序的语法错误,我好多时候都犯了语法错误,郁闷!
我定义了一个数组读数据,将数据保存在数组中。read(1,*) (a(i),i=1,np),等到需要的时候,写完数据后,再释放内存。这样做的缺点是,如果总节点数np比较大的话,占用内存就大了。我一时也想不到什么好办法。
我原本也想采用mod(N,M)函数控制的,但是又觉得代码多了一些。
还有一个问题,请指导一下。我定义了一个字符串数组,读入每行的字符串,但是如果程序这样写的话,无法读入数据,一直报错:
read(1,'(a)',iostat=error) strN(i)
这样写的话,就可以读入数据。
read(1,'(a)',iostat=error) astr
strN(i)=astr
为什么产生这样的问题?[em10][em10][em18]
5 楼
cgl_lgs [专家分:21040] 发布于 2010-09-04 16:02:00
read(1,'(a)',iostat=error) strN(i:i)
6 楼
大智若愚 [专家分:90] 发布于 2010-09-04 16:20:00
是这样读啊,晕死了[em10]
7 楼
cgl_lgs [专家分:21040] 发布于 2010-09-04 16:22:00
呵呵,是的,不过建议还是一贴一个问题比较好些:)
且解决后尽快结贴免得给广告机会:)
我来回复