Bird
Raised Fist0
MATLABdata~20 mins

Logical indexing in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Logical Indexing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of logical indexing with condition
What is the output of the following MATLAB code?
MATLAB
A = [10, 20, 30, 40, 50];
B = A(A > 25);
A[10 20 30]
B[30 40 50]
C[25 30 40 50]
D[10 20 40 50]
Attempts:
2 left
💡 Hint
Logical indexing selects elements where the condition is true.
❓ Predict Output
intermediate
2:00remaining
Logical indexing with multiple conditions
What does the variable C contain after running this code?
MATLAB
A = [5, 12, 7, 20, 3];
C = A(A > 5 & A < 20);
A[12 7 20]
B[12 20]
C[12 7]
D[5 12 7]
Attempts:
2 left
💡 Hint
Use & to combine conditions and select elements between 5 and 20, excluding 5 and 20.
❓ Predict Output
advanced
2:00remaining
Logical indexing with matrix and assignment
What is the value of matrix M after executing this code?
MATLAB
M = [1 2 3; 4 5 6; 7 8 9];
M(M > 4) = 0;
A[1 2 3; 4 0 0; 0 0 0]
B[1 2 3; 4 5 6; 7 8 0]
C[1 2 3; 0 0 0; 0 0 0]
D[0 0 0; 4 5 6; 7 8 9]
Attempts:
2 left
💡 Hint
Elements greater than 4 are replaced by zero.
❓ Predict Output
advanced
2:00remaining
Logical indexing with empty result
What is the output of this code snippet?
MATLAB
A = [2, 4, 6, 8];
B = A(A < 0);
AError: Index exceeds matrix dimensions.
B[0]
C[2 4 6 8]
D[]
Attempts:
2 left
💡 Hint
No elements satisfy the condition A < 0.
🧠 Conceptual
expert
3:00remaining
Logical indexing behavior with NaN values
Given the vector V = [1, NaN, 3, NaN, 5], what is the result of V(~isnan(V))?
A[1 3 5]
B[NaN NaN]
C[1 NaN 3 NaN 5]
DError: Invalid logical indexing
Attempts:
2 left
💡 Hint
The ~ operator negates the logical array returned by isnan.

Practice

(1/5)
1. What does logical indexing in MATLAB allow you to do with an array A and a logical array L of the same size?
easy
A. Sort the elements of A based on L
B. Select elements of A where L is true
C. Change the size of A to match L
D. Convert A into a logical array

Solution

  1. Step 1: Understand logical indexing concept

    Logical indexing uses a logical array to pick elements from another array where the logical array is true.
  2. Step 2: Apply to arrays A and L

    Elements of A are selected only where L has true values, filtering A.
  3. Final Answer:

    Select elements of A where L is true -> Option B
  4. Quick Check:

    Logical indexing = select elements [OK]
Hint: Logical array true picks elements from original array [OK]
Common Mistakes:
  • Thinking logical indexing changes array size arbitrarily
  • Confusing logical indexing with sorting
  • Assuming logical indexing converts data types
2. Which of the following is the correct syntax to select elements of vector v that are greater than 5 using logical indexing?
easy
A. v(v > 5)
B. v > 5(v)
C. v{v > 5}
D. v[v > 5]

Solution

  1. Step 1: Identify correct logical indexing syntax

    In MATLAB, logical indexing uses parentheses with a logical condition inside, like v(condition).
  2. Step 2: Check each option

    v(v > 5) uses v(v > 5), which is correct syntax. The other options use invalid indexing forms.
  3. Final Answer:

    v(v > 5) -> Option A
  4. Quick Check:

    Logical indexing syntax = v(condition) [OK]
Hint: Use parentheses with condition inside for logical indexing [OK]
Common Mistakes:
  • Using curly braces or square brackets for logical indexing
  • Placing condition outside parentheses
  • Confusing logical indexing with cell or array indexing
3. Given A = [3, 7, 2, 9, 5], what is the result of A(A > 4)?
medium
A. [2, 5]
B. [3, 7, 2, 9, 5]
C. [7, 9]
D. [7, 9, 5]

Solution

  1. Step 1: Create logical array for condition A > 4

    Check each element: 3>4?false, 7>4?true, 2>4?false, 9>4?true, 5>4?true. Logical array = [false, true, false, true, true].
  2. Step 2: Select elements of A where logical array is true

    Elements at true positions: 7, 9, 5.
  3. Final Answer:

    [7, 9, 5] -> Option D
  4. Quick Check:

    Elements > 4 = [7, 9, 5] [OK]
Hint: Filter elements by condition, then pick true positions [OK]
Common Mistakes:
  • Including elements not greater than 4
  • Confusing logical indexing with logical AND operation
  • Returning original array instead of filtered
4. What is wrong with this MATLAB code snippet?
A = [1, 4, 6, 8];
L = [true, false];
B = A(L);
medium
A. Logical array L size does not match A size
B. Logical array L must contain only numeric values
C. Cannot use logical indexing on row vectors
D. Syntax error in logical indexing

Solution

  1. Step 1: Check sizes of A and L

    A has 4 elements, L has 2 elements. Logical indexing requires L to be same size as A.
  2. Step 2: Identify error cause

    Since sizes differ, MATLAB will give an error when using L to index A.
  3. Final Answer:

    Logical array L size does not match A size -> Option A
  4. Quick Check:

    Logical array size must match data size [OK]
Hint: Logical array must be same size as indexed array [OK]
Common Mistakes:
  • Assuming logical array can be smaller
  • Thinking logical array must be numeric
  • Believing logical indexing syntax is wrong here
5. You have a matrix M = [2, 5, 8; 1, 7, 3; 4, 6, 9]. How do you replace all elements less than 5 with zero using logical indexing?
hard
A. M(M <= 5) = 0;
B. M(M > 5) = 0;
C. M(M < 5) = 0;
D. M(M == 5) = 0;

Solution

  1. Step 1: Identify elements less than 5 in M

    Elements less than 5 are 2, 1, 3, 4.
  2. Step 2: Use logical indexing to assign zero to these elements

    Using M(M < 5) = 0; replaces all elements less than 5 with zero.
  3. Final Answer:

    M(M < 5) = 0; -> Option C
  4. Quick Check:

    Replace elements < 5 with 0 using M(M < 5) = 0 [OK]
Hint: Use condition inside parentheses to assign new values [OK]
Common Mistakes:
  • Replacing wrong elements by using > or == instead of <
  • Using incorrect logical operators
  • Trying to assign without logical indexing
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