Matrix indexing (row, col) in MATLAB - Time & Space Complexity
We want to understand how long it takes to access elements in a matrix using row and column indexes.
How does the time needed change when the matrix gets bigger?
Analyze the time complexity of the following code snippet.
A = rand(1000, 1000); % Create a 1000x1000 matrix
row = 500;
col = 400;
element = A(row, col); % Access one element
This code accesses a single element from a large matrix using its row and column position.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Accessing one element by its row and column index.
- How many times: Exactly once in this snippet.
Accessing one element does not require looking at other elements, so the time stays about the same even if the matrix grows.
| Input Size (n x n) | Approx. Operations |
|---|---|
| 10 x 10 | 1 |
| 100 x 100 | 1 |
| 1000 x 1000 | 1 |
Pattern observation: The number of operations stays the same no matter how big the matrix is.
Time Complexity: O(1)
This means accessing a single element takes the same amount of time regardless of matrix size.
[X] Wrong: "Accessing an element takes longer if the matrix is bigger because it has to look through more data."
[OK] Correct: The computer uses the row and column numbers to jump directly to the element without checking others, so size does not slow it down.
Knowing that matrix element access is fast helps you understand how to write efficient code when working with large data sets.
"What if we accessed all elements in a matrix one by one using nested loops? How would the time complexity change?"
Practice
A?Solution
Step 1: Understand MATLAB indexing syntax
MATLAB uses parentheses with row and column indices in the formA(row, column).Step 2: Apply to given indices
To get the element in the 2nd row and 3rd column, useA(2, 3).Final Answer:
A(2, 3) -> Option CQuick Check:
Matrix indexing = A(2, 3) [OK]
- Swapping row and column indices
- Using square brackets instead of parentheses
- Using curly braces which are for cell arrays
B in MATLAB?Solution
Step 1: Recall how to select entire rows or columns
In MATLAB,:means all elements in that dimension. To select the entire 4th row, useB(4, :).Step 2: Check options
B(:, 4)selects the 4th column,B(4)is invalid for 2D matrix, and square brackets are not used for indexing.Final Answer:
B(4, :) -> Option BQuick Check:
Row selection = B(4, :) [OK]
- Confusing row and column positions
- Using square brackets for indexing
- Omitting the colon for full dimension selection
C = [1 2 3; 4 5 6; 7 8 9], what is the output of C(2, 1:3)?Solution
Step 1: Identify the row and columns selected
C(2, 1:3)means row 2, columns 1 through 3.Step 2: Extract elements from matrix
Row 2 ofCis[4 5 6]. Selecting columns 1 to 3 gives the entire row.Final Answer:
[4 5 6] -> Option AQuick Check:
Row 2, cols 1-3 = [4 5 6] [OK]
- Selecting wrong row or column range
- Confusing row and column indices
- Expecting a single number instead of a vector
D = [10 20 30; 40 50 60] and we want to select the 3rd row?row3 = D(3, :);Solution
Step 1: Check matrix size
MatrixDhas 2 rows and 3 columns only.Step 2: Analyze indexing for row 3
Trying to access row 3 withD(3, :)is invalid and causes a runtime error because that row does not exist.Final Answer:
Runtime error because row 3 does not exist -> Option DQuick Check:
Index out of bounds = runtime error [OK]
- Assuming MATLAB returns empty for out-of-range index
- Confusing syntax error with runtime error
- Expecting MATLAB to auto-expand matrix
E = [5 10 15; 20 25 30; 35 40 45]. How do you create a new matrix F that contains only the 1st and 3rd rows and the 2nd and 3rd columns of E?Solution
Step 1: Identify required rows and columns
We want rows 1 and 3, and columns 2 and 3 from matrixE.Step 2: Use indexing with vectors for rows and columns
In MATLAB, useE([1 3], [2 3])to select these specific rows and columns.Final Answer:
F = E([1 3], [2 3]); -> Option AQuick Check:
Index rows and columns with vectors = F = E([1 3], [2 3]) [OK]
- Using colon to select unwanted rows or columns
- Swapping row and column indices
- Using incorrect row or column numbers
Ready to prove it?
Pass the test and this pattern moves unknown
