在Matlab论坛中使用importdata分隔包含文本的分隔文件

时间:2016-10-06 12:53:44

标签: matlab import

我知道有多种方法可以从文本文件中导入数据,但我不确定哪一种更直接。我试图使用导入数据,但我遇到了一个问题。

数据如下所示:

Track File : C:\Tasl\Img0000059.TRK
-----------------------------------

       X       Y    PHI  RANGE    DIP    MAJ     MIN      XT      ZT      M2
   192.7    30.0  286.2    0.0    0.0   5.60    4.42    6.59  108.50    1.32 
    73.4   689.2  210.8    0.0    0.0  34.61   29.20   34.61* 108.50    2.31*
    26.2   475.1   80.4    0.0    0.0   5.66    5.14    5.03* 108.50    0.44*
    43.3   674.3   61.7    0.0    0.0  18.95   10.85   27.42  108.50    2.16...

这似乎有效,但是当我查看输出结构的数据部分时,它只包含行(包括第一个包含*的行。它还将这些值显示为NaN。

有没有办法让Matlab忽略这些*,还是有更好的方法来导入这些数据?

由于

1 个答案:

答案 0 :(得分:0)

我最终这样做了:

fidInFile = fopen(filename,'r');            %# Open input file for reading
fidOutFile = fopen([filename '_nostars'],'w');  %# Open output file for writing
nextLine = fgets(fidInFile);                %# Get the first line of input
while nextLine >= 0                         %# Loop until getting -1 (end of file)
  nextLine = strrep(nextLine,'*','');  %# Replace wordA with wordB
  fprintf(fidOutFile,'%s',nextLine);        %# Write the line to the output file
  nextLine = fgets(fidInFile);              %# Get the next line of input
end
fclose(fidInFile);                          %# Close the input file
fclose(fidOutFile);                         %# Close the output file

然后我在新文件上使用'importdata'。然后我可以在数百个文件上运行它,而不是手动浏览每个文件并使用查找和替换。