Меня интересует общая проблема доступа к полю, в котором может быть скрыто произвольное количество уровней в глубине вмещающей структуры.Ниже приведен конкретный пример использования двух уровней.
Допустим, у меня есть структура toplevel
, которую я определяю из командной строки MATLAB следующим образом:
midlevel.bottomlevel = 'foo';
toplevel.midlevel = midlevel;
Я могу получить доступ к *Структура 1007 *, передавая имя поля в виде строки, например:
fieldnameToAccess = 'midlevel';
value = toplevel.(fieldnameToAccess);
, но я не могу получить доступ к структуре bottomlevel
таким же образом - следующий синтаксис недопустим:
fieldnameToAccess = 'midlevel.bottomlevel';
value = toplevel.(fieldnameToAccess); %# throws ??? Reference to non-existent field 'midlevel.bottomlevel'
Я мог бы написать функцию, которая просматривает периоды fieldnameToAccess
и затем рекурсивно перебирает, чтобы получить желаемое поле, но мне интересно, есть ли какой-нибудь умный способ использовать встроенные модули MATLAB, чтобы просто получить значение полянепосредственно.