サブ構造体とフィールドのインデックス付け
コード生成時にサブ構造体およびフィールドにインデックス付けを行う場合は次のガイドラインを使用してください。
ドット表記を使ってサブ構造体のフィールドの値を個別に参照する
たとえば、次の MATLAB® コードは、ドット表記を使用してフィールドとサブ構造体にインデックスを付けています。
... substruct1.a1 = 15.2; substruct1.a2 = int8([1 2;3 4]); mystruct = struct('ele1',20.5,'ele2',single(100), 'ele3',substruct1); substruct2 = mystruct; substruct2.ele3.a2 = 2*(substruct1.a2); ...
生成コードでは、この例の構造体の要素に対し、次のようにシンボルを解釈することでインデックスを付けます。
ドット表記 | 記号の解釈 |
---|---|
substruct1.a1 | ローカル構造体 substruct1 のフィールド a1 |
substruct2.ele3.a1 | ローカル構造体 substruct2 のサブ構造体のフィールド ele3 のフィールド a1 の値 |
substruct2.ele3.a2(1,1) | ローカル構造体 substruct2 のサブ構造体のフィールド ele3 のフィールド a2 の行 1、列 1 の値 |
構造体配列内のフィールドの値を参照するには、目的の構造体の配列にインデックスを付けてから、ドット表記でその構造体のフィールドを個別に参照しなければなりません。以下に例を示します。
... y = X(1).a % Extracts the value of field a % of the first structure in array X ...
配列の各構造体の特定のフィールド値をすべて参照するには、以下の例のように、この表記を for
ループで使用します。
... s.a = 0; s.b = 0; X = repmat(s,1,5); for i = 1:5 X(i).a = i; X(i).b = i+1; end
この例では、関数 repmat
を使用して構造体の配列を定義しています。各構造体は、s
で定義された a
と b
の 2 つのフィールドをもっています。詳細については、コード生成のための構造体の配列の定義を参照してください。
構造体の中のフィールドを、動的な名前を使用して参照することはできません。動的な名前は、実行時に MATLAB が評価する可変の式としてフィールドを表現します (変数からフィールド名を生成を参照してください)。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)