我必须使用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
直到最后。
作为"标题"每组的相同,每组的行数也是一样的,我可以通过简单地选择我想要的矩阵的行来轻松提取我想要的集合......但是我怎样才能将这个文本文件导入矩阵还是什么?
由于
答案 0 :(得分:1)
你可以使用这样的东西
fid = fopen( 'file1.txt' );
tline = fgetl(fid);
while ischar(tline)
disp(tline) %your parsing code here
tline = fgetl(fid);
end
fclose( fid );