我对访问可能被包含结构深度任意嵌套的字段的一般问题很感兴趣。下面是一个使用两个级别的具体示例。
假设我有一个名为toplevel
的结构,我可以在MATLAB命令行中使用以下命令定义它:
midlevel.bottomlevel = 'foo';
toplevel.midlevel = midlevel;
我可以通过传递字段名称字符串来访问
midlevel
结构,例如:fieldnameToAccess = 'midlevel';
value = toplevel.(fieldnameToAccess);
但是我无法以相同的方式访问bottomlevel
结构--以下语法无效:
fieldnameToAccess = 'midlevel.bottomlevel';
value = toplevel.(fieldnameToAccess); %# throws ??? Reference to non-existent field 'midlevel.bottomlevel'
我可以编写一个函数,查找fieldnameToAccess
中的句点并递归迭代以获取所需字段,但我想知道是否有一些聪明的方法使用MATLAB内置函数直接获取字段值。