MATLAB:从textfile获取变量

MATLAB:从textfile获取变量,matlab,file,Matlab,File,我一直试图从一个文本文件中获取一个变量,我在Matlab工作区中读取了该文件 该文件包含以下内容: --------------------------------------------------------------- Surface Forces (referred to Sref,Cref,Bref about Xref,Yref,Zref) Standard axis orientation, X fwd, Z down Sref = 35.

我一直试图从一个文本文件中获取一个变量,我在Matlab工作区中读取了该文件

该文件包含以下内容:

---------------------------------------------------------------
 Surface Forces (referred to Sref,Cref,Bref about Xref,Yref,Zref)
 Standard axis orientation,  X fwd, Z down         

     Sref =   35.00       Cref =    2.4325   Bref =   14.5000
     Xref =     18.5306   Yref =    0.0000   Zref =   -0.7092

 n      Area      CL      CD      Cm      CY      Cn      Cl     CDi     CDv
 1    35.263  0.6972  0.0138  4.8547  0.0040  0.0069 -0.2817  0.0138  0.0000   F27 WING

 Surface Forces (referred to Ssurf, Cave about root LE on hinge axis)

   n     Ssurf      Cave       cl       cd      cdv    cm_LE
   1    35.263     2.432   0.6920   0.0137   0.0000   0.0000  F27 WING
 ---------------------------------------------------------------
我需要CL以下的值,在本例中为0.6972。我尝试过使用fopen和importdata,但没有成功。importdata只是将整个文件放在一个单元格数组中,其中9行1列包含所有字符串。从那以后,我不知道如何继续下去

使用fopen,我试图逐行读取文件,并检查他是否找到CL字符串。他确实找到了它,但它的价值是[]


有人能给我小费吗?谢谢。

如果您有幸拥有一个较新版本的Matlab,那么下面的方法就可以了

 B = readtable('test.dat'),'Delimiter','\t');
 c = regexp(B{9,:}, ' ','split');
 CL_vec = c{1,1};
 CL_cell = CL_vec(13);
 Wing_CL = str2num(CL_cell{1,1});
使用fgetl()提取不需要的行,然后使用fscanf()将一行数据读入向量(“dataline”)。然后可以访问向量的各个元素

基于您的文件的示例:
打开并读取文件,丢弃前7行,包括空行:

fid = fopen(filename, 'r')
for i = 1:7
    oneline = fgetl(fid);
end
读取文件的第8行;存储在浮点向量中

dataline = fscanf(fid, ['%f' ])
将向量的第三个值指定给“CL”

CL = dataline(3)
fclose(fid)

CL
ans =

    0.6972