我有一个表格的文本文件:
[ 1.80000000e+02 1.00000000e+01 1.00000000e+01 1.00000000e+01
6.00000000e+00 6.00000000e+00 1.10371666e+02 1.70305901e+01
9.97633591e+01 1.80011719e+02 3.40282347e+38 3.40282347e+38
6.00000000e+00]
[ 1.80000000e+02 1.00035019e+01 1.00000000e+01 1.00000000e+01
6.00000000e+00 6.00000000e+00 1.10371666e+02 1.70305901e+01
9.97633591e+01 1.80011719e+02 3.40282347e+38 3.40282347e+38
3.00000000e+00]
.
.
.
[ 1.80000000e+02 1.00035019e+01 1.00000000e+01 1.00000000e+01
6.00000000e+00 6.00000000e+00 1.10371666e+02 1.70305901e+01
9.97633591e+01 1.80011719e+02 3.40282347e+38 3.40282347e+38
3.00000000e+00]
我想将此数据作为Matrix加载到MatLab中,其中文本文件的每个列表中的数字是单行的内容。因此,实际上,Matrix中的每一行都将包含一个完整列表。我尝试过各种各样的事情,但没有什么能让我得到正确的结果。我认为这是由于奇怪的格式化,每个新行在开头+还有每个新的' ['。任何帮助将不胜感激?
答案 0 :(得分:1)
我不知道超级优雅的解决方案。我会用这样的sscanf
敲出一些东西:
f = fopen('mytmp.txt') ;
s = textscan(f,'%s','Delimiter','[ ]','MultipleDelimsAsOne',true) ;
fclose(f) ;
m = numel(s{1}) ;
v = NaN(m,1) ;
for ii = 1:m
v(ii) = sscanf(s{1}{ii},'%f') ;
end
m = reshape(v,13,[])' ;