我知道有多种方法可以从文本文件中导入数据,但我不确定哪一种更直接。我试图使用导入数据,但我遇到了一个问题。
数据如下所示:
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忽略这些*,还是有更好的方法来导入这些数据?
由于
答案 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'。然后我可以在数百个文件上运行它,而不是手动浏览每个文件并使用查找和替换。