如何在matlab中加载/导入奇怪格式的文本文件

时间:2014-11-11 17:55:07

标签: matlab import format

我必须使用matlab从一个带有一些奇怪格式的文本文件中提取数据,但我不能这样做,因为有很多文本,我知道的函数在这种情况下不起作用。数据以不同的集合(超过200个)排列,每个集合大约2000个值。

以下是如何格式化文本文件中的数据:

一组中的第一行是那些

@legend string   0 "Partition=  1 Excit=  1 near/far= 1"
#legend string   0 "Lab energy =  737.0000"
@s0 linestyle   1
#  Theta       sigma       iT11        T20         T21         T22         Kyy for projectile
  0.1000E-01   1.000    
  0.1000E-01   1.000    
  0.2000E-01   1.001    
  0.3000E-01   1.001    

这一直持续到

   19.98      0.1659    
   19.99      0.1654    
   20.00      0.1649    
 END

END文本表示集合的结束。然后,新集开始

@legend string   1 "Partition=  1 Excit=  2 near/far= 1"
#legend string   0 "Lab energy =  737.0000"
@s1 linestyle   2
#  Theta       sigma       iT11        T20         T21         T22         Kyy for projectile
   0.000       26.40    
  0.1000E-01   26.41    
  0.2000E-01   26.45    
  0.3000E-01   26.52 

直到最后。

作为"标题"每组的相同,每组的行数也是一样的,我可以通过简单地选择我想要的矩阵的行来轻松提取我想要的集合......但是我怎样才能将这个文本文件导入矩阵还是什么?

由于

1 个答案:

答案 0 :(得分:1)

你可以使用这样的东西

fid = fopen( 'file1.txt' );
tline = fgetl(fid);
while ischar(tline)   
   disp(tline) %your parsing code here
   tline = fgetl(fid);
end
fclose( fid );