Bird
Raised Fist0
MATLABdata~10 mins

Structures and field access in MATLAB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Structures and field access
Create structure with fields
↓
Access field using dot notation
↓
Read or modify field value
↓
Use updated structure or field value
↓
End
This flow shows how to create a structure, access its fields using dot notation, read or change values, and then use the updated structure.
Execution Sample
MATLAB
person.name = 'Alice';
person.age = 30;
disp(person.name);
person.age = 31;
disp(person.age);
This code creates a structure 'person' with fields 'name' and 'age', displays the name, updates the age, and then displays the new age.
Execution Table
StepActionStructure StateOutput
1Create field 'name' with value 'Alice'person.name = 'Alice'
2Create field 'age' with value 30person.name = 'Alice', person.age = 30
3Display person.nameperson.name = 'Alice', person.age = 30Alice
4Update person.age to 31person.name = 'Alice', person.age = 31
5Display person.ageperson.name = 'Alice', person.age = 3131
6End of codeperson.name = 'Alice', person.age = 31
💡 All lines executed; structure fields accessed and updated successfully.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 4Final
person.nameundefined'Alice''Alice''Alice''Alice'
person.ageundefinedundefined303131
Key Moments - 3 Insights
Why do we use dot notation like person.name to access fields?
Dot notation specifies which field inside the structure we want. See execution_table step 3 where person.name is accessed to display 'Alice'.
What happens if we try to access a field that doesn't exist?
MATLAB gives an error because the field is not defined. In this example, all fields exist as shown in variable_tracker.
How do we update a field value inside a structure?
Assign a new value using dot notation, like person.age = 31 in step 4 of execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the output when displaying person.name?
A"Alice"
B"30"
C"person"
DError
💡 Hint
Check the Output column at step 3 in execution_table.
At which step does person.age get updated to 31?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the Action column in execution_table where the age field changes.
If we tried to display person.height (not defined), what would happen?
ADisplays empty string
BError: Field 'height' does not exist
CDisplays 0
DDisplays 'height'
💡 Hint
Refer to key_moments about accessing undefined fields.
Concept Snapshot
Structure creation: s.field = value
Access field: s.field
Update field: s.field = new_value
Fields hold data of any type
Accessing undefined field causes error
Full Transcript
This example shows how to create a MATLAB structure named 'person' with fields 'name' and 'age'. We assign 'Alice' to person.name and 30 to person.age. Using dot notation, we display person.name which outputs 'Alice'. Then we update person.age to 31 and display it, outputting 31. Dot notation is used to access or modify fields inside the structure. Trying to access a field that does not exist will cause an error. The variable tracker shows how the fields change after each step. This helps beginners understand how structures store related data and how to work with their fields.

Practice

(1/5)
1. What is the correct way to access the field age from a structure person in MATLAB?
easy
A. person['age']
B. person.age
C. person->age
D. person.age()

Solution

  1. Step 1: Understand MATLAB structure field access

    In MATLAB, fields of a structure are accessed using dot notation without parentheses or brackets.
  2. Step 2: Identify correct syntax for field access

    The correct syntax is structure.field, so person.age is correct.
  3. Final Answer:

    person.age -> Option B
  4. Quick Check:

    Use dot notation for fields [OK]
Hint: Use dot notation to access structure fields in MATLAB [OK]
Common Mistakes:
  • Using parentheses like a function call
  • Using brackets like a dictionary
  • Using arrow notation from other languages
2. Which of the following is the correct way to create a structure car with fields make and year in MATLAB?
easy
A. car = struct(make = 'Toyota', year = 2020);
B. car = {make: 'Toyota', year: 2020};
C. car = struct['make' => 'Toyota', 'year' => 2020];
D. car = struct('make', 'Toyota', 'year', 2020);

Solution

  1. Step 1: Recall MATLAB struct creation syntax

    MATLAB uses the struct function with pairs of field names and values as strings and values.
  2. Step 2: Match correct syntax

    car = struct('make', 'Toyota', 'year', 2020); uses struct('make', 'Toyota', 'year', 2020), which is correct MATLAB syntax.
  3. Final Answer:

    car = struct('make', 'Toyota', 'year', 2020); -> Option D
  4. Quick Check:

    Use struct('field', value, ...) to create structures [OK]
Hint: Use struct('field', value) pairs to create structures [OK]
Common Mistakes:
  • Using JSON or dictionary syntax
  • Using equal signs inside struct()
  • Using brackets instead of parentheses
3. What is the output of the following MATLAB code?
person.name = 'Alice';
person.age = 30;
disp(person.age);
medium
A. 'Alice'
B. name
C. 30
D. Error: Undefined variable

Solution

  1. Step 1: Understand structure field assignment

    The code assigns 'Alice' to person.name and 30 to person.age.
  2. Step 2: Identify what disp(person.age) shows

    The disp function prints the value of person.age, which is 30.
  3. Final Answer:

    30 -> Option C
  4. Quick Check:

    disp shows the value of the accessed field [OK]
Hint: disp(struct.field) prints the field's value [OK]
Common Mistakes:
  • Confusing field names with values
  • Expecting the field name instead of value
  • Syntax errors from missing semicolons
4. Consider this MATLAB code snippet:
data = struct('x', 10, 'y', 20);
disp(data.z);
What will happen when this code runs?
medium
A. Error: Reference to non-existent field 'z'.
B. Displays 0
C. Displays empty array []
D. Displays 20

Solution

  1. Step 1: Check structure fields

    The structure data has fields x and y, but no field z.
  2. Step 2: Accessing a non-existent field

    Trying to access data.z causes MATLAB to throw an error about the missing field.
  3. Final Answer:

    Error: Reference to non-existent field 'z'. -> Option A
  4. Quick Check:

    Accessing missing fields causes an error [OK]
Hint: Access only existing fields; missing fields cause errors [OK]
Common Mistakes:
  • Assuming missing fields return 0 or empty
  • Ignoring error messages
  • Confusing field names with variable names
5. You have a structure array students with fields name and score. How do you create a new structure passed containing only students with score >= 50?
hard
A. passed = students([students.score] >= 50);
B. passed = struct('name', students.name, 'score', students.score >= 50);
C. passed = students.score >= 50;
D. passed = students{students.score >= 50};

Solution

  1. Step 1: Understand structure arrays and logical indexing

    In MATLAB, [students.score] creates an array of scores. Logical indexing selects elements where condition is true.
  2. Step 2: Apply logical indexing to filter students

    The expression students([students.score] >= 50) selects only students with scores 50 or above.
  3. Final Answer:

    passed = students([students.score] >= 50); -> Option A
  4. Quick Check:

    Use logical indexing on structure arrays [OK]
Hint: Use logical indexing with [struct.field] to filter arrays [OK]
Common Mistakes:
  • Trying to assign logical array directly
  • Using curly braces instead of parentheses
  • Creating new struct without filtering
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard