Bird
Raised Fist0
MATLABdata~5 mins

Special matrices (zeros, ones, eye, rand) in MATLAB - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Special matrices (zeros, ones, eye, rand)
O(n^2)
Understanding Time Complexity

When creating special matrices like zeros, ones, eye, or rand in MATLAB, it's important to know how the time to create them grows as the matrix size increases.

We want to understand how the work done changes when the matrix gets bigger.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

n = 1000;
A = zeros(n, n);
B = ones(n, n);
C = eye(n);
D = rand(n, n);

This code creates four special matrices of size n by n: all zeros, all ones, identity, and random values.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Filling each element of the n by n matrix.
  • How many times: Each matrix has n * n elements, so the operation repeats n squared times.
How Execution Grows With Input

As the matrix size n grows, the number of elements grows by n squared, so the work grows quickly.

Input Size (n)Approx. Operations
10100
10010,000
10001,000,000

Pattern observation: Doubling n makes the work about four times bigger because the matrix has n squared elements.

Final Time Complexity

Time Complexity: O(n^2)

This means the time to create these matrices grows proportionally to the square of the matrix size.

Common Mistake

[X] Wrong: "Creating these matrices takes time proportional to n, not n squared."

[OK] Correct: Each matrix has n rows and n columns, so the total elements are n times n, which is n squared. The computer must set each element, so the time grows with n squared.

Interview Connect

Understanding how matrix creation time grows helps you reason about performance in data processing and simulations, which is a useful skill in many programming tasks.

Self-Check

"What if we create a vector instead of a matrix, like zeros(n, 1)? How would the time complexity change?"

Practice

(1/5)
1. Which MATLAB function creates a matrix filled entirely with zeros?
easy
A. zeros
B. ones
C. eye
D. rand

Solution

  1. Step 1: Understand the function purpose

    The zeros function creates a matrix where every element is zero.
  2. Step 2: Compare with other functions

    ones creates all ones, eye creates identity matrix, rand creates random values.
  3. Final Answer:

    zeros -> Option A
  4. Quick Check:

    zeros = zeros matrix [OK]
Hint: Zeros means all elements are zero, so use zeros() [OK]
Common Mistakes:
  • Confusing zeros with ones
  • Thinking eye creates zeros
  • Using rand for zeros
2. Which of the following is the correct syntax to create a 3x3 identity matrix in MATLAB?
easy
A. eye(3)
B. ones(3,3)
C. zeros(3,3)
D. rand(3)

Solution

  1. Step 1: Recall identity matrix creation

    The eye(n) function creates an n-by-n identity matrix with ones on the diagonal.
  2. Step 2: Check syntax correctness

    eye(3) correctly creates a 3x3 identity matrix. Others create different matrices.
  3. Final Answer:

    eye(3) -> Option A
  4. Quick Check:

    eye(3) = 3x3 identity [OK]
Hint: Identity matrix uses eye(n) syntax [OK]
Common Mistakes:
  • Using ones or zeros instead of eye
  • Missing parentheses
  • Using rand for identity
3. What is the output of the following MATLAB code?
A = ones(2,3);
B = zeros(2,3);
C = A + B;
medium
A. [[2 2 2]; [2 2 2]]
B. [[0 0 0]; [0 0 0]]
C. [[1 1 1]; [1 1 1]]
D. Error due to size mismatch

Solution

  1. Step 1: Understand matrix creation

    ones(2,3) creates a 2x3 matrix of all ones, zeros(2,3) creates a 2x3 matrix of zeros.
  2. Step 2: Add matrices element-wise

    Adding ones and zeros element-wise results in the same ones matrix.
  3. Final Answer:

    [[1 1 1]; [1 1 1]] -> Option C
  4. Quick Check:

    ones + zeros = ones [OK]
Hint: Adding zeros keeps original values unchanged [OK]
Common Mistakes:
  • Thinking addition doubles values
  • Confusing matrix sizes
  • Expecting error on addition
4. Identify the error in this MATLAB code:
M = zeros(3);
M(2,4) = 5;
medium
A. Matrix must be created with ones, not zeros
B. Index exceeds matrix dimensions error
C. No error, code runs fine
D. Syntax error due to missing semicolon

Solution

  1. Step 1: Check matrix size

    zeros(3) creates a 3x3 matrix, so valid indices are 1 to 3 for both rows and columns.
  2. Step 2: Analyze indexing

    Accessing M(2,4) tries to access column 4, which does not exist, causing an index error.
  3. Final Answer:

    Index exceeds matrix dimensions error -> Option B
  4. Quick Check:

    Index out of range = error [OK]
Hint: Check matrix size before indexing [OK]
Common Mistakes:
  • Ignoring matrix size limits
  • Thinking semicolon causes error
  • Assuming zeros() creates bigger matrix
5. You want to create a 4x4 matrix with ones on the diagonal and random numbers between 0 and 1 elsewhere. Which MATLAB code achieves this?
hard
A. M = rand(4); M(eye(4) == 0) = 1;
B. M = eye(4) + rand(4) - diag(rand(4,1));
C. M = ones(4); M(eye(4) == 0) = rand(4);
D. M = rand(4); M(eye(4) == 1) = 1;

Solution

  1. Step 1: Understand the goal

    Create a 4x4 matrix with random values, then set diagonal elements to 1.
  2. Step 2: Analyze each option

    M = rand(4); M(eye(4) == 1) = 1; creates random 4x4 matrix, then replaces diagonal elements (where eye(4)==1) with 1, matching the requirement.
  3. Final Answer:

    M = rand(4); M(eye(4) == 1) = 1; -> Option D
  4. Quick Check:

    Random matrix with diagonal ones = M = rand(4); M(eye(4) == 1) = 1; [OK]
Hint: Set diagonal after random matrix creation using logical indexing [OK]
Common Mistakes:
  • Adding matrices incorrectly
  • Replacing wrong elements
  • Using ones() instead of random values
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