求助:matlab关于.txt文件的读入??
希望各位大侠能够帮手一把啊!!!!感激不尽试过几种,但是都不太理想,matlab中是否有可以选择从.txt文件的哪一行读起的功能???急救!!
文件如下:
塑性成型模拟及模具技术国家重点实验室
新型电机国家专业实验室
外存储系统国家专业实验室
08-JUN-2006 08:30:21
频率
0.10000000E+03
结果
1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.64068743E-09 -0.28455465E-10 0.12174444E-08
-0.29230750E-10 -0.14194027E-19 0.14248605E-21
2 2 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.13279121E-08 -0.37356964E-10 0.37539014E-09
-0.20223325E-10 -0.56247991E-20 0.56645838E-22
塑性成型模拟及模具技术国家重点实验室
新型电机国家专业实验室
外存储系统国家专业实验室
08-JUN-2006 08:30:21
频率
0.11000000E+03
结果
1 1 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.64068743E-09 -0.28455465E-10 0.12174444E-08
-0.29230750E-10 -0.14194027E-19 0.14248605E-21
2 2 0.00000000E+00 0.00000000E+00 0.00000000E+00
0.00000000E+00 0.00000000E+00 0.00000000E+00
0.13279121E-08 -0.37356964E-10 0.37539014E-09
-0.20223325E-10 -0.56247991E-20 0.56645838E-22
我试过
法1:采用=textread('test.txt','%f%f%f%','headerlines',7)%%题头占7行
但是,1 2 结果的编号打乱了读入,而且得不到频率数值
法2:但是得不到频率,而且文件大时,读写文件很慢!!!!
%%%%%用于去掉题头
fidin=fopen('test.txt'); % 打开test文件,导出temp.txt文件
fidout=fopen('temp.txt','w'); % 创建temp.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
ifdouble(tline(1))==32&&double(tline(7))==32 % 根据文件特性判断首字符是空格,
%%第7个是否不是空格
fprintf(fidout,'%s\n',tline); % 如果是数字行,把此行数据写入文件temp.txt
continue % 如果是非数字继续下一次循环
end
end
fclose(fidout);
%%%%%%%%%%%开始读取数值
fid = fopen('temp.txt');
a = fscanf(fid,'%g %g',) % 一个结果包括1 2 共14个数值
cccc=a';
fclose(fid);
%%%%%%%%%**********************************
各位大侠搭把手了!!
[ 本帖最后由 cdwxg 于 2006-8-16 09:31 编辑 ] 这个问题论坛讨论已经很多了
你参考靠帖子http://forum.vibunion.com/forum/viewthread.php?tid=8937给的程序吧
根据你的要求略加修改
[ 本帖最后由 cdwxg 于 2006-8-16 09:31 编辑 ]
页:
[1]