24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2883  |  回复: 4

ep081106

金虫 (正式写手)

[求助] matlab 文件读取 怎样定位到一行并读出改行的数据?已有1人参与

Project-File:    C:\Program Files (x86)\AVL\CRUISE\v2010\projects\MTK\PSO\PSO1122\PSO.prj

  Structure-File:    C:\Program Files (x86)\AVL\CRUISE\v2010\projects\MTK\PSO\PSO1122\PSO.stc

  Data-File:    C:\Program Files (x86)\AVL\CRUISE\v2010\projects\MTK\PSO\PSO1122\PSO.dbf

  Used CPU-Time - PREPROCESSING: 1.11 Seconds

  Task-File:    C:\Program Files (x86)\AVL\CRUISE\v2010\projects\MTK\PSO\PSO1122\folder.002\hybridvehicle.tsk

  library not loaded...

  ERROR H_102 : MH_LoadOnlineMonitorLib_DP

  Error in opening Online Monitor

  WARNING H_103 : MH_OpenOnlineMonitor_DP

  Used CPU-Time - PREPROCESSING: 0.50 Seconds

  Calculation running ..

  Fuel Consumption of 1 Combustion Engine(s):   480.00 [l/100km]

  Fuel Consumption of 1 Electrical Motor(s):   -435.64 [kWh/100km]

  NOx-Emission  of 1 Combustion Engine(s):     0.00 [g]
  CO-Emission   of 1 Combustion Engine(s):     0.00 [g]
  HC-Emission   of 1 Combustion Engine(s):     0.00 [g]
  Soot-Emission of 1 Combustion Engine(s):     0.00 [g]

  NOx-Emission  after 0 Catalyst(s):     0.00 [g]
  CO-Emission   after 0 Catalyst(s):     0.00 [g]
  HC-Emission   after 0 Catalyst(s):     0.00 [g]
  Soot-Emission after 0 Catalyst(s):     0.00 [g]

  Covered Distance:  7000.00 [m]

  .. Calculation of Task Complete

我把这结果保存在了一个txt文件里!请问该怎么定位到这两行
  Fuel Consumption of 1 Combustion Engine(s):   480.00 [l/100km]

  Fuel Consumption of 1 Electrical Motor(s):   -435.64 [kWh/100km]
并且把这两行的”480.00,-435.64“读出并存起来!谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

我爱我妞
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

amefd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
ep081106: 金币+5, 有帮助, 有些帮助!不过我暂时没运行成功! 2014-11-27 08:35:47
while 1
tline = fgetl(fid);
if length(tline)>__ & tline(1:__)=='Fuel Consumption of 1 Combustion Engine(s):'
number=str2num(tline(____));
break;
end
end
PhD是人类的好朋友。
2楼2014-11-26 16:33:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ep081106

金虫 (正式写手)

引用回帖:
2楼: Originally posted by amefd at 2014-11-26 16:33:19
while 1
tline = fgetl(fid);
if length(tline)>__ & tline(1:__)=='Fuel Consumption of 1 Combustion Engine(s):'
number=str2num(tline(____));
break;
end
end

if length(tline)>__ & tline(1:__)
请问“__”这个是什么?matlab无法识别。
我爱我妞
3楼2014-11-27 08:34:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ep081106

金虫 (正式写手)

fidin=fopen('C:\Program Files (x86)\AVL\CRUISE\v2010\projects\MTK\PSO\PSO1122\messages\cruise.log','r');  % 打开test2.txt文件            
fidout=fopen('Fuel1126.txt','w');                       % 创建MKMATLAB.txt文件
while ~feof(fidin)                                      % 判断是否为文件末尾               
    tline=fgetl(fidin);                                 % 从文件读行   
      if strfind(tline,'Fuel Consumption of 1 ')
         fprintf(fidout,'%s\n\n',tline(47:54));     % 把此行数据写入文件MKMATLAB.txt
         continue                                         % 如果是非数字继续下一次循环
     end
fclose(fidout);
Fuel=importdata('Fuel1126.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
end

这个是我自己编的程序,可以实现。不过目测楼上的“number=str2num(tline(____));”这句命令比较好。就是tline(____)括号里是什么?四个“_”?matlab不识别啊?
我爱我妞
4楼2014-11-27 08:39:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

amefd

铁杆木虫 (职业作家)

引用回帖:
3楼: Originally posted by ep081106 at 2014-11-27 08:34:19
if length(tline)>__ & tline(1:__)
请问“__”这个是什么?matlab无法识别。...

这是让你填数的,我懒得数了
PhD是人类的好朋友。
5楼2014-11-27 13:50:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ep081106 的主题更新
信息提示
请填处理意见