声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1651|回复: 1

[编程技巧] 求助:matlab关于.txt文件的读入??

[复制链接]
发表于 2006-8-16 09:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
希望各位大侠能够帮手一把啊!!!!感激不尽
试过几种,但是都不太理想,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:采用[a1,a2,a3]=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);                                 % 从文件读行
   if  double(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',[14 2])      % 一个结果包括1      2    共14个数值
cccc=a';
fclose(fid);
%%%%%%%%%**********************************

各位大侠搭把手了!!

[ 本帖最后由 cdwxg 于 2006-8-16 09:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-8-16 09:28 | 显示全部楼层
这个问题论坛讨论已经很多了

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

根据你的要求略加修改

[ 本帖最后由 cdwxg 于 2006-8-16 09:31 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 02:44 , Processed in 0.064929 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表