📖 Scenario: You are working with a simple security system that checks multiple conditions to decide if access should be granted.
🎯 Goal: Build a MATLAB script that uses logical operators & (AND), | (OR), and ~ (NOT) to evaluate access conditions.
📋 What You'll Learn
Create logical variables representing conditions
Use logical AND & to combine conditions
Use logical OR | to combine conditions
Use logical NOT ~ to invert a condition
Display the final access decision
💡 Why This Matters
🌍 Real World
Logical operators are used in security systems, decision making, and filtering data based on multiple conditions.
💼 Career
Understanding logical operators is essential for programming, data analysis, and automation tasks in many technical jobs.
Progress0 / 4 steps
1
Create initial logical variables
Create three logical variables in MATLAB: hasKey set to true, knowsPassword set to false, and isAdmin set to true.
MATLAB
Hint
Use true and false to assign logical values in MATLAB.
2
Add a condition variable for access by key and password
Create a new logical variable called accessByKeyAndPassword that is true only if both hasKey and knowsPassword are true using the logical AND operator &.
MATLAB
Hint
Use & to combine two logical variables for AND.
3
Create a condition for access by key or admin
Create a logical variable called accessByKeyOrAdmin that is true if either hasKey or isAdmin is true using the logical OR operator |.
MATLAB
Hint
Use | to combine two logical variables for OR.
4
Display the final access decision using NOT operator
Create a logical variable called noAccess that is the opposite of accessByKeyOrAdmin using the logical NOT operator ~. Then display noAccess using disp.
MATLAB
Hint
Use ~ to invert a logical variable and disp to show the result.
Practice
(1/5)
1. Which logical operator in MATLAB returns true only if both conditions are true?
easy
A. ~ (NOT)
B. & (AND)
C. | (OR)
D. ^ (XOR)
Solution
Step 1: Understand the AND operator
The & operator returns true only when both conditions it compares are true.
Step 2: Compare with other operators
The | operator returns true if at least one condition is true, ~ negates a condition, and ^ is XOR which returns true if exactly one condition is true.
Final Answer:
& (AND) -> Option B
Quick Check:
Both true = true means AND = & [OK]
Hint: AND means both true, use & operator [OK]
Common Mistakes:
Confusing & with | operator
Thinking ~ returns true if both true
Mixing XOR (^) with AND (&)
2. Which of the following is the correct syntax to negate a logical variable a in MATLAB?
easy
A. not a
B. !a
C. ~a
D. a~
Solution
Step 1: Recall MATLAB negation syntax
In MATLAB, the negation operator is ~ placed before the variable to flip its logical value.
Step 2: Check each option
not a uses 'not' which is not valid syntax, C uses '!' which is not MATLAB syntax, and D places '~' after the variable which is incorrect.
Final Answer:
~a -> Option C
Quick Check:
Negate with ~ before variable [OK]
Hint: Use ~ before variable to negate in MATLAB [OK]
Common Mistakes:
Using ! instead of ~ for negation
Writing negation after variable
Using 'not' keyword which is invalid
3. What is the output of the following MATLAB code?
a = true; b = false; c = a & ~b;
medium
A. true
B. false
C. 1
D. 0
Solution
Step 1: Evaluate ~b
Since b is false, ~b is true.
Step 2: Evaluate a & ~b
Both a and ~b are true, so a & ~b is true.
Final Answer:
true -> Option A
Quick Check:
true AND true = true [OK]
Hint: Negate false to true, then AND with true gives true [OK]
Common Mistakes:
Confusing logical true/false with numeric 1/0
Forgetting to negate b
Assuming & acts like | (OR)
4. Identify the error in this MATLAB code snippet:
a = true; b = false; c = a | ~ b;
medium
A. No error, code runs correctly
B. Incorrect use of | operator
C. Extra space between ~ and b causes error
D. Missing parentheses around ~b
Solution
Step 1: Check operator usage
The | operator is correctly used to perform logical OR between a and ~b.
Step 2: Check negation syntax
The negation operator ~ can have a space before the variable; MATLAB ignores spaces here.
Final Answer:
No error, code runs correctly -> Option A
Quick Check:
Logical OR with negation syntax is valid [OK]
Hint: Spaces around ~ do not cause errors in MATLAB [OK]
Common Mistakes:
Thinking ~ needs parentheses always
Assuming space causes syntax error
Confusing | with & operator
5. Given logical variables x = [true false true] and y = [false true true], what is the result of z = ~(x & y) | (x | y) in MATLAB?
hard
A. [false false false]
B. [false true true]
C. [true false true]
D. [true true true]
Solution
Step 1: Calculate x & y element-wise
x = [true false true], y = [false true true] x & y = [true & false, false & true, true & true] = [false, false, true]