主题:[原创]矩阵数据读取
haiandai
[专家分:0] 发布于 2011-03-10 11:35:00
我有一个5G左右的大矩阵(气象原始数据),不能确定到底有多少行,因为数据太大无法打开,我现在需要时间品均,请问各位大侠及斑竹如何读取文件,确定矩阵行数?[size=6][/size][color=0000FF][/color]
回复列表 (共6个回复)
沙发
yeg001 [专家分:14390] 发布于 2011-03-10 19:36:00
文件数据的规律大概知道吧? 知道就一行行读下去, 做个文件末的出错处理.
板凳
臭石头雪球 [专家分:23030] 发布于 2011-03-11 08:18:00
我认为这种数据应该是二进制的,否则太不合理了
3 楼
yeg001 [专家分:14390] 发布于 2011-03-11 09:13:00
我师兄一个程序也是生成一个10多G的一般文本文件, 然后再单独一个程序去处理几个小时得到几个最终数据文件, -_-'''
4 楼
haiandai [专家分:0] 发布于 2011-03-11 10:44:00
事实上,一些长周期的在野外观测的气象数据并不是二进制的,数据文件的大小对于存储卡来说早就不是问题了。
5 楼
haiandai [专家分:0] 发布于 2011-03-11 10:46:00
关键的两个语句是什么?
能否写出来?
6 楼
yeg001 [专家分:14390] 发布于 2011-03-11 12:54:00
open(unit=84, file="a.txt")
do
read(unit=84, fmt="(格式)", iostat=error) a_line
if(error/=0) exit
'处理'
enddo
我习惯是这样处理, 具体使用根据你遇到的问题修改.
error 的返回值其实根据不同出错情况有不同值, 到文件尾只是其中一种. 想获得更多信息可以查阅iostat的用法.
如果改用二进制文件, 文件体积有可能少2个量级. 读取速度也能大大加快. 整个处理程序运算能够节省不少时间. 这不是能不能放这么大的文件的问题.
我来回复