収容構造物の奥深くに任意の数のレベルが埋まっている可能性のあるフィールドにアクセスするという一般的な問題に興味があります。2つのレベルを使用した具体的な例を以下に示します。
構造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組み込み関数を使用してフィールド値を直接取得する賢い方法があるかどうか疑問に思っています。