📖 Scenario: You are building a simple access control system for a small office. The system checks if a person has the right clearance level to enter a restricted area.
🎯 Goal: Create a MATLAB program that stores employee clearance levels, sets a required clearance level for the restricted area, checks each employee's clearance, and prints who can enter.
📋 What You'll Learn
Create a dictionary (containers.Map) called clearanceLevels with employee names as keys and their clearance levels as values.
Create a variable called requiredLevel to store the minimum clearance level needed to enter.
Use a for loop with variables employee and level to iterate over clearanceLevels.keys and check each employee's clearance.
Print the employee's name and whether they can enter or not.
💡 Why This Matters
🌍 Real World
Access control systems are used in offices, labs, and secure buildings to allow only authorized people inside.
💼 Career
Understanding how to manage and check permissions is important for roles in IT security, system administration, and software development.
Progress0 / 4 steps
1
Create the clearance levels dictionary
Create a containers.Map called clearanceLevels with these exact entries: 'Alice' with level 3, 'Bob' with level 1, 'Charlie' with level 2.
MATLAB
Hint
Use containers.Map with two cell arrays: one for keys (names) and one for values (levels).
2
Set the required clearance level
Create a variable called requiredLevel and set it to 2 to represent the minimum clearance level needed to enter.
MATLAB
Hint
Just assign the number 2 to the variable requiredLevel.
3
Check each employee's clearance
Use a for loop with variables employee and level to iterate over clearanceLevels.keys. Inside the loop, get each employee's clearance level from clearanceLevels and compare it to requiredLevel.
MATLAB
Hint
Use clearanceLevels.keys to get all employee names, then loop with an index. Use clearanceLevels(employee) to get the level.
4
Print who can enter
Inside the for loop, use fprintf to print the employee's name and either 'can enter' or 'cannot enter' depending on their clearance.
MATLAB
Hint
Use fprintf('%s can enter\n', employee) or fprintf('%s cannot enter\n', employee) inside the if statement.
Practice
(1/5)
1. What does the private access modifier do in a MATLAB class?
easy
A. It makes properties or methods accessible only in the command window.
B. It allows access to properties or methods from anywhere in the program.
C. It allows access only to child classes and the class itself.
D. It restricts access to class properties or methods only within the class itself.
Solution
Step 1: Understand the role of private in MATLAB classes
The private keyword restricts access to properties or methods so that only the class itself can use them.
Step 2: Compare with other access modifiers
public allows access from anywhere, protected allows access from child classes, but private is the most restrictive.
Final Answer:
It restricts access to class properties or methods only within the class itself. -> Option D
Quick Check:
private means class-only access [OK]
Hint: Private means only the class itself can access [OK]
Common Mistakes:
Confusing private with public access
Thinking private allows child class access
Assuming private is accessible from outside
2. Which of the following is the correct syntax to declare a protected property named data in a MATLAB class?
easy
A. properties protected
data
end
B. properties (protected)
data
end
C. properties (public)
data
end
D. properties (private)
data
end
Solution
Step 1: Recall MATLAB property access syntax
Access modifiers are specified in parentheses after the properties keyword, e.g., properties (protected).
Step 2: Identify correct syntax for protected
The correct syntax uses parentheses: properties (protected). properties protected
data
end misses parentheses, so it's invalid.
Final Answer:
properties (protected)
data
end -> Option B
Quick Check:
Use parentheses for access modifiers [OK]
Hint: Use parentheses after properties for access [OK]
Common Mistakes:
Omitting parentheses around access modifier
Using wrong access modifier for the question
Placing access modifier outside properties block
3. Consider this MATLAB class snippet:
classdef MyClass
properties (Access = private)
secret = 42;
end
methods
function val = getSecret(obj)
val = obj.secret;
end
end
end
obj = MyClass();
disp(obj.secret);
What happens when you run this code?
medium
A. It causes an error because secret is private.
B. It displays 42.
C. It displays an empty value.
D. It displays the class name.
Solution
Step 1: Identify access level of secret
The property secret is declared private, so it cannot be accessed directly outside the class.
Step 2: Analyze the code trying to access secret
The line disp(obj.secret); tries to access the private property directly, which is not allowed and causes an error.
Final Answer:
It causes an error because secret is private. -> Option A
Quick Check:
Private properties block outside access [OK]
Hint: Private properties can't be accessed outside class [OK]
Common Mistakes:
Assuming private properties can be accessed directly
Confusing method access with property access
Ignoring access modifiers in property declaration
4. This MATLAB class has an error. Find and fix it:
classdef Parent
properties (Access = protected)
value
end
end
classdef Child < Parent
methods
function setValue(obj, val)
obj.value = val;
end
end
end
c = Child();
c.setValue(10);
disp(c.value);
medium
A. Add a getter method in Child to access value.
B. Make setValue a static method.
C. Change value access to public.
D. Remove inheritance from Child.
Solution
Step 1: Understand protected access
The property value is protected, so Child can set it, but outside code cannot access it directly.
Step 2: Identify why disp(c.value) fails
Outside code tries to access value directly, which is not allowed for protected properties.
Step 3: Fix by adding a getter method
Adding a method in Child to return value allows controlled access without changing access level.
Final Answer:
Add a getter method in Child to access value. -> Option A
Quick Check:
Use getter for protected property access outside class [OK]
Hint: Use getter methods to access protected properties outside class [OK]
Common Mistakes:
Trying to access protected property directly outside class
Changing access to public unnecessarily
Not using inheritance properly
5. You want to create a MATLAB class BankAccount where the balance is private, but child classes can update it. You also want to allow anyone to check the balance. Which access control setup is correct?
hard
A. Declare balance as public; anyone can read and update balance.
B. Declare balance as private and provide a public getter method; child classes cannot update balance directly.
C. Declare balance as protected and provide a public getter method; child classes can update balance, others can only read it.
D. Declare balance as private with no getter; only the class can access balance.
Solution
Step 1: Identify access needs for balance
Balance should be hidden from outside for updates but readable by anyone, and updatable by child classes.
Step 2: Choose access modifier and methods
Protected allows child classes to update balance. A public getter method allows anyone to read balance safely.
Final Answer:
Declare balance as protected and provide a public getter method; child classes can update balance, others can only read it. -> Option C
Quick Check:
Protected + public getter fits requirements [OK]
Hint: Protected for update by children, public getter for read [OK]
Common Mistakes:
Making balance public allowing unwanted updates
Using private without getter blocking read access
Not providing a getter method for balance
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.