String 在Matlab中调用结构中的字段名?

String 在Matlab中调用结构中的字段名?,string,matlab,struct,field,String,Matlab,Struct,Field,我正在将变量名MetabMapString传递给函数spectroscopy()。MetabMapString是我要调用的字段的名称。但似乎Matlab认为MetabMapString是字段名,因为它返回没有字段名MetabMapString。我已经包括了一些代码。有没有办法让它发挥作用 function spectroscopy(MetabMapString) spect = importdata(spectLCMI); n = length(spect.MetabMapStr

我正在将变量名MetabMapString传递给函数spectroscopy()。MetabMapString是我要调用的字段的名称。但似乎Matlab认为MetabMapString是字段名,因为它返回没有字段名MetabMapString。我已经包括了一些代码。有没有办法让它发挥作用

function spectroscopy(MetabMapString)
    spect = importdata(spectLCMI);
    n = length(spect.MetabMapString);

    Row = spect.Row;
    Col = spect.Col;
    spectOrig = spect.MetabMapString;

    ...

end
这里是错误

??? Reference to non-existent field 'MetabMapString'.

Error in ==> SpectDraw>spectroscopy at 1165
n = length(spect.MetabMapString);
应该是:

n = length(spect.(MetabMapString));
这应该行得通。在使用包含字符串的变量作为结构或MATLAB类的字段名,或作为类的方法名的所有其他位置也一样:

spectOrig = spect.(MetabMapString);

什么是spectLCMI?变量?结构?它是一个包含数据的CSV文件。每个字段都有一个名称,然后是与该名称关联的一些数据。