我想在Matlab中导入一个由外部软件自动生成的数据文件。
此数据文件有时会在随机位置的第三列中包含特殊字符。因此,我不能简单地利用dlmread。
我正在弄清楚如何在Matlab中导入此文件自动,同时在矩阵中插入数据。此外,识别特殊字符并用NaN替换它们是必要的。
以下是一些示例数据,可帮助您更好地了解问题:
NACA0012
Alfa = 25.00000 Re = 0.000 Xflap,Yflap = 0.000000 0.000000
x y Cp
1.00000 0.00126 0.53803
0.08399 0.04389 -7.27148
0.07278 0.04150 -8.16799
0.03346 0.02983-15.69087
0.02840 0.02771-18.03665
0.02399 0.02566-20.81862
0.00360 0.01041-95.28658
0.00238 0.00851*********
0.00141 0.00659*********
0.00070 0.00467*********
0.00025 0.00277*********
0.00003 0.00091*********
0.00003 -0.00091*********
0.00025 -0.00277-93.41611
0.00070 -0.00467-72.18787
0.00141 -0.00659-51.54605
0.00238 -0.00851-37.04853
注意第三列如何在第二列中“卡住”
任何帮助都会受到赞赏,因为我有点卡住而且不知道如何自动完成。也许你们可以为我提供一段代码来完成它。
提前致谢!
Balraj
答案 0 :(得分:1)
使用textscan
并考虑3个想法:
*
字符串将被视为NaN
s; 因此代码(假设示例数据在文件'u.txt'
中):
try
f = fopen('u.txt');
m = textscan( f, ...
'%f%f%f', Inf, ...
'HeaderLines', 6, ...
'TreatAsEmpty', '*********', ...
'CollectOutput', 1 ...
);
fclose(f);
catch ME
fclose('all');
end;