変数からフィールド名を生成
この例では、実行時に変数または式から構造体のフィールド名を導出する方法を示します。一般的な構文は次のとおりです。
structName.(dynamicExpression)
ここで、dynamicExpression
は、評価されたときに string スカラーを返す変数または式です。式で参照するフィールド名は "動的なフィールド名" と呼ばれます。
たとえば、現在の日付からフィールド名を作成します。
currentDate = datestr(now,'mmmdd');
myStruct.(currentDate) = [1,2,3]
システムが報告する現在の日付が 2 月 29 日である場合、このコードによりデータは Feb29
と名付けられたフィールドに割り当てられます。
myStruct = Feb29: [1 2 3]
動的なフィールド名は、文字ベクトルまたは string スカラーを返すことができます。たとえば、一重引用符または二重引用符を使用して、フィールド Feb29
を指定できます。
myStruct.('Feb29')
ans = 1 2 3
myStruct.("Feb29")
ans = 1 2 3
フィールド名は変数名と同様にアルファベットで始めなければならず、その他のアルファベット文字、数字、またはアンダースコア文字を含むことができ、大文字と小文字は区別されます。フィールド名にピリオドを含めることはできません。潜在的な競合を避けるために、既存の変数または関数の名前をフィールド名として使用しないでください。
参考
struct
| fieldnames
| getfield
| setfield