0
0
MATLABdata~10 mins

Dynamic field names in MATLAB - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Dynamic field names
Start
Create struct
Define field name as string
Use dynamic field name to assign value
Access or modify field using dynamic name
End
This flow shows how to create a structure, define a field name as a string, and use that string to dynamically assign or access fields.
Execution Sample
MATLAB
fieldName = 'age';
person = struct();
person.(fieldName) = 30;
disp(person.age);
This code creates a struct and uses a dynamic field name to assign and display a value.
Execution Table
StepActionVariable/FieldValueOutput
1Assign string to fieldNamefieldName'age'
2Create empty structpersonstruct with no fields
3Assign 30 to person.(fieldName)person.age30
4Display person.ageperson.age3030
5End of code
💡 Code ends after displaying the value of the dynamic field.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
fieldNameundefined'age''age''age''age'
personundefinedundefinedempty structstruct with field 'age' = 30struct with field 'age' = 30
Key Moments - 2 Insights
Why do we use parentheses and a dot like person.(fieldName) instead of person.fieldName?
Using person.(fieldName) tells MATLAB to use the value of the variable fieldName as the field name. person.fieldName would look for a field literally named 'fieldName', which does not exist. See execution_table step 3.
What happens if the field name string changes after assignment?
Changing the string variable after assigning the field does not change the existing field. The field name is fixed at assignment. See variable_tracker for fieldName and person after step 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 3. What field does person have after assignment?
A'person'
B'fieldName'
C'age'
DNo fields
💡 Hint
Check the 'Variable/Field' column at step 3 in the execution_table.
At which step is the value 30 assigned to the struct field?
AStep 3
BStep 1
CStep 2
DStep 4
💡 Hint
Look at the 'Action' and 'Value' columns in the execution_table.
If we change fieldName to 'height' after step 3, what happens to person.age?
Aperson.age changes to person.height
Bperson.age remains 30
Cperson.age is deleted
Dperson becomes empty
💡 Hint
Refer to key_moments about field name changes after assignment.
Concept Snapshot
Dynamic field names in MATLAB:
- Use a string variable as a field name with syntax: structVar.(fieldName)
- Allows flexible field assignment/access
- Field name is fixed at assignment time
- Useful for loops or variable field names
- Example: person.(fieldName) = value;
Full Transcript
This example shows how to use dynamic field names in MATLAB structures. First, we assign the string 'age' to the variable fieldName. Then, we create an empty struct called person. Using dynamic field name syntax person.(fieldName), we assign the value 30 to the field named 'age'. Finally, we display the value of person.age, which outputs 30. The key point is that using parentheses with a variable allows MATLAB to use the variable's value as the field name, not the literal variable name. Changing the variable fieldName later does not affect the existing struct fields.