Bird
Raised Fist0
MATLABdata~30 mins

Logical operators (&, |, ~) in MATLAB - Mini Project: Build & Apply

Choose your learning style10 modes available
Logical Operators (&, |, ~) in MATLAB
📖 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

  1. Step 1: Understand the AND operator

    The & operator returns true only when both conditions it compares are true.
  2. 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.
  3. Final Answer:

    & (AND) -> Option B
  4. 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

  1. Step 1: Recall MATLAB negation syntax

    In MATLAB, the negation operator is ~ placed before the variable to flip its logical value.
  2. 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.
  3. Final Answer:

    ~a -> Option C
  4. 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

  1. Step 1: Evaluate ~b

    Since b is false, ~b is true.
  2. Step 2: Evaluate a & ~b

    Both a and ~b are true, so a & ~b is true.
  3. Final Answer:

    true -> Option A
  4. 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

  1. Step 1: Check operator usage

    The | operator is correctly used to perform logical OR between a and ~b.
  2. Step 2: Check negation syntax

    The negation operator ~ can have a space before the variable; MATLAB ignores spaces here.
  3. Final Answer:

    No error, code runs correctly -> Option A
  4. 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

  1. 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]
  2. Step 2: Negate x & y

    ~(x & y) = [~false, ~false, ~true] = [true, true, false]
  3. Step 3: Calculate x | y element-wise

    x | y = [true | false, false | true, true | true] = [true, true, true]
  4. Step 4: Calculate final expression

    z = ~(x & y) | (x | y) = [true | true, true | true, false | true] = [true, true, true]
  5. Final Answer:

    [true true true] -> Option D
  6. Quick Check:

    Element-wise logic with ~, &, | gives all true [OK]
Hint: Calculate & first, then ~, then | element-wise [OK]
Common Mistakes:
  • Forgetting element-wise operation
  • Negating before AND instead of after
  • Mixing up & and | precedence
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