Logical operators (&, |, ~) in MATLAB - Time & Space Complexity
Logical operators in MATLAB are used to combine or invert true/false values. Understanding their time complexity helps us know how the program speed changes when working with large arrays.
We want to see how the time to compute these logical operations grows as the input size increases.
Analyze the time complexity of the following code snippet.
A = rand(1, n) > 0.5;
B = rand(1, n) > 0.5;
C = A & B; % Logical AND
D = A | B; % Logical OR
E = ~A; % Logical NOT
This code creates two logical arrays and applies AND, OR, and NOT operations element-wise.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Element-wise logical operations on arrays.
- How many times: Once per element, repeated for all n elements.
Each logical operation checks every element once, so the total work grows directly with the number of elements.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 operations per logical step |
| 100 | About 100 operations per logical step |
| 1000 | About 1000 operations per logical step |
Pattern observation: The number of operations grows in a straight line as input size increases.
Time Complexity: O(n)
This means the time to complete the logical operations grows directly in proportion to the input size.
[X] Wrong: "Logical operators run instantly no matter how big the arrays are."
[OK] Correct: Each element must be checked, so bigger arrays take more time, not zero time.
Knowing how logical operations scale helps you write efficient code when working with large data sets, a useful skill in many programming tasks.
"What if we used nested loops to apply logical operators on a matrix instead of a single array? How would the time complexity change?"