在Matlab中的Struct中调用字段名称?

时间:2012-02-12 00:46:37

标签: string matlab struct field

我将变量名称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);

1 个答案:

答案 0 :(得分:3)

应该是:

n = length(spect.(MetabMapString));

那应该有用。在您使用包含字符串作为结构或MATLAB类的字段名称的变量或作为类的方法名称的所有其他地方也是如此:

spectOrig = spect.(MetabMapString);