Bird
Raised Fist0
MATLABdata~10 mins

Nested loops in MATLAB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Nested loops
Start Outer Loop i=1
↓
Start Inner Loop j=1
↓
Execute Inner Loop Body
↓
Update j = j+1
↓
Check j <= max_j?
No→End Inner Loop
Yes↓
Update i = i+1
↓
Check i <= max_i?
No→End Outer Loop
↩Back to Inner Loop Body
The outer loop runs first. For each outer loop step, the inner loop runs completely. Then the outer loop moves to the next step.
Execution Sample
MATLAB
for i = 1:2
    for j = 1:3
        disp([i, j])
    end
end
Print pairs of i and j where i goes 1 to 2 and j goes 1 to 3 for each i.
Execution Table
StepijCondition i<=2Condition j<=3ActionOutput
111TrueTruePrint [1 1][1 1]
212TrueTruePrint [1 2][1 2]
313TrueTruePrint [1 3][1 3]
414TrueFalseExit inner loop
521TrueTruePrint [2 1][2 1]
622TrueTruePrint [2 2][2 2]
723TrueTruePrint [2 3][2 3]
824TrueFalseExit inner loop
931FalseTrueExit outer loop
💡 i reaches 3, condition i<=2 is False, so outer loop ends
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5After 6After 7After 8Final
i1111222233
j1234123411
Key Moments - 3 Insights
Why does the inner loop restart j from 1 for each new i?
Because the inner loop is inside the outer loop, it runs fully for each i. See execution_table rows 1-4 for i=1 and rows 5-8 for i=2, where j resets to 1 each time.
When does the outer loop variable i increase?
After the inner loop finishes all its iterations. Look at execution_table row 4 where j=4 ends inner loop, then i increments from 1 to 2 at row 5.
Why does the loop stop at i=3?
Because the outer loop condition i<=2 becomes false at i=3, stopping the loop. See execution_table row 9 where condition i<=2 is False.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of j at step 6?
A2
B3
C1
D4
💡 Hint
Check the 'j' column in execution_table row 6.
At which step does the inner loop end for i=1?
AStep 3
BStep 4
CStep 5
DStep 9
💡 Hint
Look for when 'Condition j<=3' becomes False for i=1 in execution_table.
If the outer loop changed to i=1:3, how many total print outputs would there be?
A6
B9
C12
D3
💡 Hint
Multiply outer loop count (3) by inner loop count (3) to find total prints.
Concept Snapshot
Nested loops run one loop inside another.
Outer loop runs first.
For each outer step, inner loop runs fully.
Use nested for loops in MATLAB like:
for i=1:n
  for j=1:m
    % code
  end
end
Inner loop resets each outer iteration.
Full Transcript
Nested loops in MATLAB mean one loop runs inside another. The outer loop variable i starts at 1 and goes to 2. For each i, the inner loop variable j runs from 1 to 3. Each pair (i,j) is printed. The inner loop finishes all j values before i increases. When i reaches 3, the outer loop stops because the condition i<=2 is false. Variables i and j change as the loops run. The inner loop resets j to 1 for each new i. This pattern lets you do repeated tasks in a grid or matrix style.

Practice

(1/5)
1. What does a nested loop in MATLAB do?
for i = 1:2
for j = 1:3
disp([i, j])
end
end
easy
A. Runs one loop inside another to repeat tasks multiple times
B. Runs two loops one after another without overlap
C. Creates a single loop with combined ranges
D. Stops execution after the first loop finishes

Solution

  1. Step 1: Understand the loop structure

    The outer loop runs with i from 1 to 2, and inside it, the inner loop runs with j from 1 to 3.
  2. Step 2: Identify nested loop behavior

    For each i, the inner loop runs fully for all j values, repeating tasks multiple times.
  3. Final Answer:

    Runs one loop inside another to repeat tasks multiple times -> Option A
  4. Quick Check:

    Nested loops repeat inner loop for each outer loop iteration [OK]
Hint: Nested loops repeat inner loop fully for each outer loop step [OK]
Common Mistakes:
  • Thinking loops run sequentially without nesting
  • Confusing nested loops with single combined loops
  • Assuming loops stop early without completing inner loop
2. Which of the following is the correct syntax for a nested for loop in MATLAB?
easy
A. for i = 1:3 disp(i) for j = 1:2 disp(j) end
B. for i = 1:3 for j = 1:2 disp(i+j) end
C. for i = 1:3 for j = 1:2 disp(i+j) end
D. for i = 1:3 for j = 1:2 disp(i+j) end end

Solution

  1. Step 1: Check proper loop nesting and end statements

    for i = 1:3 for j = 1:2 disp(i+j) end end correctly nests the inner loop inside the outer loop and closes both with end.
  2. Step 2: Identify syntax errors in other options

    The other options miss proper indentation or have missing end statements causing syntax errors.
  3. Final Answer:

    for i = 1:3 for j = 1:2 disp(i+j) end end -> Option D
  4. Quick Check:

    Proper nested loops need matching end for each for [OK]
Hint: Each for loop must have its own end statement [OK]
Common Mistakes:
  • Missing end for inner or outer loop
  • Incorrect indentation causing confusion
  • Starting loops without proper nesting
3. What is the output of this MATLAB code?
for i = 1:2
  for j = 1:2
    fprintf('%d ', i*j)
  end
  fprintf('\n')
end
medium
A. 1 2 2 4
B. 1 1 2 2
C. 1 2 2 4
D. 2 4 1 2

Solution

  1. Step 1: Calculate inner loop outputs for each outer loop value

    When i=1, j=1:2, outputs are 1*1=1 and 1*2=2. When i=2, j=1:2, outputs are 2*1=2 and 2*2=4.
  2. Step 2: Format output with new lines

    Each inner loop prints values with space, then outer loop prints newline. So output lines are '1 2 ' and '2 4 '.
  3. Final Answer:

    1 2 2 4 -> Option C
  4. Quick Check:

    Multiply i and j in nested loops for output [OK]
Hint: Multiply outer and inner loop vars for each output [OK]
Common Mistakes:
  • Ignoring newline after inner loop
  • Mixing up i and j values
  • Printing all values in one line
4. Find the error in this nested loop code:
for i = 1:3
  for j = 1:2
    disp(i+j)
end
medium
A. Missing end for outer loop
B. Inner loop range is incorrect
C. disp function is used incorrectly
D. Loop variables i and j are not initialized

Solution

  1. Step 1: Check loop endings

    The inner loop has an end, but the outer loop does not have its closing end.
  2. Step 2: Identify syntax error cause

    Missing the outer loop's end causes MATLAB to throw an error.
  3. Final Answer:

    Missing end for outer loop -> Option A
  4. Quick Check:

    Each for loop needs its own end [OK]
Hint: Count ends: one per for loop [OK]
Common Mistakes:
  • Forgetting to close outer loop
  • Assuming one end closes both loops
  • Misreading error messages
5. You want to create a 3x3 multiplication table using nested loops in MATLAB. Which code correctly fills matrix M with products of row and column indices?
hard
A. M = zeros(3); for i = 1:3 for j = 1:3 M(j,i) = i+j; end end
B. M = zeros(3); for i = 1:3 for j = 1:3 M(i,j) = i*j; end end
C. M = zeros(3); for i = 1:3 for j = 1:3 M(i,j) = i+j; end end
D. M = zeros(3); for i = 1:3 for j = 1:3 M(i,j) = i-j; end end

Solution

  1. Step 1: Understand the multiplication table goal

    The table should store products of row and column indices, so M(i,j) = i*j.
  2. Step 2: Check each option's assignment

    M = zeros(3); for i = 1:3 for j = 1:3 M(i,j) = i*j; end end correctly assigns M(i,j) = i*j. The other options assign sums or differences, not products.
  3. Final Answer:

    M = zeros(3); for i = 1:3 for j = 1:3 M(i,j) = i*j; end end -> Option B
  4. Quick Check:

    Multiplication table uses product of indices [OK]
Hint: Assign M(i,j) = i*j for multiplication table [OK]
Common Mistakes:
  • Using addition or subtraction instead of multiplication
  • Swapping indices in assignment
  • Not initializing matrix before loops
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