Index Substructures and Fields
Use these guidelines when indexing substructures and fields for code generation:
Reference substructure field values individually using dot notation
For example, the following MATLAB® code uses dot notation to index fields and substructures:
... 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); ...
The generated code indexes elements of the structures in this example by resolving symbols as follows:
|Dot Notation||Symbol Resolution|
|Value of field |
|Value in row 1, column 1 of field |
Reference field values individually in structure arrays
To reference the value of a field in a structure array, you must index into the array to the structure of interest and then reference that structure's field individually using dot notation, as in this example:
... y = X(1).a % Extracts the value of field a % of the first structure in array X ...
To reference all the values
of a particular field for each structure in an array, use this notation
for loop, as in this example:
... 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
This example uses the
to define an array of structures, each with two fields
s. See Define Arrays of Structures for Code Generation for more information.
Do not reference fields dynamically
You cannot reference fields in a structure by using dynamic names, which express the field as a variable expression that MATLAB evaluates at run time (see Generate Field Names from Variables).
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
- 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)
- United Kingdom (English)