Bird
Raised Fist0
MATLABdata~5 mins

Special matrices (zeros, ones, eye, rand) in MATLAB

Choose your learning style10 modes available
Introduction

Special matrices help you quickly create common types of matrices like all zeros, all ones, identity, or random numbers. This saves time and makes your code easier to read.

When you need a matrix filled with zeros to start calculations.
When you want a matrix filled with ones for adding or multiplying.
When you need an identity matrix for linear algebra tasks.
When you want a matrix with random numbers for simulations or testing.
Syntax
MATLAB
zeros(n,m)
ones(n,m)
eye(n)
rand(n,m)

n and m are the number of rows and columns.

eye(n) creates an n x n identity matrix.

Examples
Creates a 3 rows by 4 columns matrix filled with zeros.
MATLAB
Z = zeros(3,4)
Creates a 2 by 5 matrix filled with ones.
MATLAB
O = ones(2,5)
Creates a 3 by 3 identity matrix with ones on the diagonal and zeros elsewhere.
MATLAB
I = eye(3)
Creates a 2 by 3 matrix with random numbers between 0 and 1.
MATLAB
R = rand(2,3)
Sample Program

This program creates four different 3x3 matrices using special matrix functions and prints them one by one.

MATLAB
% Create a 3x3 zero matrix
Z = zeros(3,3);

% Create a 3x3 ones matrix
O = ones(3,3);

% Create a 3x3 identity matrix
I = eye(3);

% Create a 3x3 random matrix
R = rand(3,3);

% Display all matrices
fprintf('Zero matrix:\n');
disp(Z);

fprintf('Ones matrix:\n');
disp(O);

fprintf('Identity matrix:\n');
disp(I);

fprintf('Random matrix:\n');
disp(R);
OutputSuccess
Important Notes

The rand function generates different numbers each time you run the program.

You can create square or rectangular matrices by changing n and m.

Use eye only for square identity matrices.

Summary

zeros creates a matrix filled with zeros.

ones creates a matrix filled with ones.

eye creates an identity matrix with ones on the diagonal.

rand creates a matrix with random numbers between 0 and 1.

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