求教大数据文件的读写
我现在数据文件前21行是文件头,后面是数据,大概有两百多兆。开始我用fgetl一行一行地读,但是数据实在太大了,读了两个小时都没把数据读完。
请教下有什么其他的方法可以读取这个数据文件吗?
我想要的信息只有数据中的最后六列数字。
另外,由于文件太大,用记事本无法打开,所以,不知道文件头如何去掉。
数据如下:
Pavlis, N.K., S.A. Holmes, S.C. Kenyon, and J.K. Factor:
An Earth Gravitational Model to Degree 2160: EGM2008,
presented at the 2008 General Assembly of the European Geosciences Union,
Vienna, Austria, April 13-18, 2008.
product_type gravity_field
modelname EGM2008
earth_gravity_constant 0.3986004415E+15
radius 0.63781363E+07
max_degree 2190
errors calibrated
norm fully_normalized
tide_system tide_free
url http://earth-info.nima.mil/GandG/
key L M C S sigma C sigma S
end_of_head ============================================================================================
gfc 0 0 1.0d0 0.0d0 0.0d0 0.0d0
gfc 2 0 -0.484165143790815D-03 0.000000000000000D+00 0.7481239490D-11 0.0000000000D+00
gfc 2 1 -0.206615509074176D-09 0.138441389137979D-08 0.7063781502D-11 0.7348347201D-11
gfc 2 2 0.243938357328313D-05 -0.140027370385934D-05 0.7230231722D-11 0.7425816951D-11
[ 本帖最后由 heaventian 于 2010-5-18 16:05 编辑 ] 试试fseek 谢谢,你的意思是先用fseek将fid定位到22行上的数据文件吗?这样子是不是再用fscanf便可以把后面的几千万行数据一次导入?
那么fscanf的格式应该怎么写?
我试着用下面的命令,但是显示读出的是空值。
temp1=fscanf(fid,'3%s,2%d,4%e')
为什么? 我现在直接用textscan先把所有内容读到了workspace空间内,然后再进一步处理。
但是结果是out of memory,数据文件只有两百四十多兆,怎么就不够了呢?奇怪。
[ 本帖最后由 heaventian 于 2010-5-18 22:24 编辑 ] 抱歉! 今天精神很差, 没注意到LZ的格式, 应试试textscan
但资料若真的很大, 可能也没法!? 同待高人路过 我用fread读影像数据(遥感),数据量也是挺大的,但是速度可以。。。 用ultraedit先编辑下不行么
页:
[1]