Timoshenko 发表于 2006-8-16 09:21

求助: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 编辑 ]

happy 发表于 2006-8-16 09:28

这个问题论坛讨论已经很多了

你参考靠帖子http://forum.vibunion.com/forum/viewthread.php?tid=8937给的程序吧

根据你的要求略加修改

[ 本帖最后由 cdwxg 于 2006-8-16 09:31 编辑 ]
页: [1]
查看完整版本: 求助:matlab关于.txt文件的读入??