Bird
Raised Fist0
MATLABdata~5 mins

Logical indexing in MATLAB

Choose your learning style10 modes available
Introduction
Logical indexing helps you pick elements from a list or array by using true or false values. It makes selecting data easy and fast.
You want to find all numbers greater than 10 in a list.
You need to change only the negative numbers in an array to zero.
You want to select all rows in a table where a condition is true.
You want to count how many elements meet a certain condition.
You want to filter data without writing loops.
Syntax
MATLAB
result = array(logical_index)
The logical_index is an array of true (1) or false (0) values, same size as array.
Only elements where logical_index is true are selected.
Examples
Selects elements of A that are greater than 10.
MATLAB
A = [5, 12, 7, 20];
B = A > 10;
result = A(B);
Replaces all negative numbers in A with zero.
MATLAB
A = [3, -1, 4, -5];
A(A < 0) = 0;
Selects all even numbers from A.
MATLAB
A = [10, 15, 8, 22];
result = A(mod(A,2) == 0);
Sample Program
This program finds all elements in A that are greater than 5 and displays them.
MATLAB
A = [2, 9, 4, 7, 12];
logicalIndex = A > 5;
selectedElements = A(logicalIndex);
disp('Elements greater than 5:');
disp(selectedElements);
OutputSuccess
Important Notes
Logical indexing works only if the logical array is the same size as the original array.
You can use logical indexing to both read and write parts of an array.
It is faster and cleaner than using loops for selecting elements.
Summary
Logical indexing uses true/false arrays to pick elements from another array.
It helps filter, select, or change data easily without loops.
Make sure the logical array matches the size of the original array.

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