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
Step 1: Understand the function purpose
The zeros function creates a matrix where every element is zero.
Step 2: Compare with other functions
ones creates all ones, eye creates identity matrix, rand creates random values.
Final Answer:
zeros -> Option A
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
Step 1: Recall identity matrix creation
The eye(n) function creates an n-by-n identity matrix with ones on the diagonal.
Step 2: Check syntax correctness
eye(3) correctly creates a 3x3 identity matrix. Others create different matrices.
Final Answer:
eye(3) -> Option A
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
Step 1: Understand matrix creation
ones(2,3) creates a 2x3 matrix of all ones, zeros(2,3) creates a 2x3 matrix of zeros.
Step 2: Add matrices element-wise
Adding ones and zeros element-wise results in the same ones matrix.
Final Answer:
[[1 1 1]; [1 1 1]] -> Option C
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
Step 1: Check matrix size
zeros(3) creates a 3x3 matrix, so valid indices are 1 to 3 for both rows and columns.
Step 2: Analyze indexing
Accessing M(2,4) tries to access column 4, which does not exist, causing an index error.
Final Answer:
Index exceeds matrix dimensions error -> Option B
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
Step 1: Understand the goal
Create a 4x4 matrix with random values, then set diagonal elements to 1.
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.
Final Answer:
M = rand(4); M(eye(4) == 1) = 1; -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.