Вызываете имя поля в Struct в Matlab? - PullRequest
1 голос
/ 12 февраля 2012

Я передаю имя переменной MetabMapString в функцию спектроскопии ().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 Ответ

3 голосов
/ 12 февраля 2012

Должно быть:

n = length(spect.(MetabMapString));

Это должно работать. То же самое во всех других местах, где вы используете переменную, которая содержит строку в качестве имени поля структуры или класса MATLAB, или в качестве имени метода класса:

spectOrig = spect.(MetabMapString);
...