Bird
Raised Fist0
MATLABdata~10 mins

Subplot for multiple panels in MATLAB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Subplot for multiple panels
Start
↓
Define subplot grid
↓
Select panel 1
↓
Plot data in panel 1
↓
Select panel 2
↓
Plot data in panel 2
↓
...repeat for all panels...
↓
Display all panels
↓
End
This flow shows how MATLAB creates multiple panels by defining a grid, selecting each panel, plotting data, and displaying all panels together.
Execution Sample
MATLAB
x = 1:5;
subplot(2,2,1);
plot(x, x);
subplot(2,2,2);
plot(x, x.^2);
This code creates a 2x2 grid of plots and draws a line and a parabola in the first two panels.
Execution Table
StepActionPanel SelectedPlot CommandResult
1Define x as 1 to 5--x = [1 2 3 4 5]
2Select subplot panel 1Panel 1 (top-left)-Panel 1 ready for plotting
3Plot x vs xPanel 1plot(x, x)Line plot in panel 1
4Select subplot panel 2Panel 2 (top-right)-Panel 2 ready for plotting
5Plot x vs x squaredPanel 2plot(x, x.^2)Parabola plot in panel 2
6No more panels selected--Display shows 2 plots in 2 panels of 2x2 grid
💡 All specified panels plotted, execution ends.
Variable Tracker
VariableStartAfter Step 1After Step 3After Step 5Final
xundefined[1 2 3 4 5][1 2 3 4 5][1 2 3 4 5][1 2 3 4 5]
Current PanelnonenonePanel 1Panel 2Panel 2
Key Moments - 3 Insights
Why does the plot appear only in the selected panel?
Because subplot sets the current panel for plotting. Each plot command draws only in the active panel, as shown in steps 2 and 4 of the execution_table.
What happens if you call subplot with the same panel number twice?
The second call selects that panel again, so the new plot overwrites the old one in that panel. This is why selecting a panel before plotting is important (see steps 2 and 4).
Why do we see empty panels if we define a 2x2 grid but plot only in two panels?
Because subplot creates the grid layout, but only panels with plots show data. The other panels remain empty but visible (step 6).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'Current Panel' after step 3?
APanel 2
BPanel 1
Cnone
DPanel 3
💡 Hint
Check the 'Current Panel' row in variable_tracker after step 3.
At which step does the parabola plot appear?
AStep 2
BStep 3
CStep 5
DStep 6
💡 Hint
Look at the 'Plot Command' and 'Result' columns in execution_table.
If you add subplot(2,2,3) and plot(x, x.^3) after step 5, what changes in variable_tracker?
AA new 'Current Panel' value 'Panel 3' appears after step 6
BVariable x changes values
CNo change in 'Current Panel'
Dx becomes undefined
💡 Hint
Adding a new subplot changes the current panel selection as tracked in variable_tracker.
Concept Snapshot
subplot(m,n,p) creates a grid of m rows and n columns.
Select panel p to plot in that panel.
Each plot command draws only in the selected panel.
Panels not plotted remain empty but visible.
Use subplot repeatedly to fill multiple panels.
Full Transcript
This lesson shows how MATLAB's subplot function divides a figure into multiple panels arranged in a grid. We start by defining a vector x from 1 to 5. Then we select the first panel in a 2 by 2 grid and plot x versus x, which draws a line. Next, we select the second panel and plot x versus x squared, drawing a parabola. The variable tracker shows how the current panel changes with each subplot call. Key points include that each plot draws only in the selected panel, and empty panels remain visible if not plotted. The quiz tests understanding of panel selection and plotting order.

Practice

(1/5)
1. What does the MATLAB function subplot(2, 3, 4) do?
easy
A. Plots data in the 2nd row and 3rd column of a figure.
B. Creates a 2x3 matrix and fills it with the number 4.
C. Clears the 4th subplot in a 2 by 3 grid.
D. Divides the figure into 2 rows and 3 columns, then selects the 4th panel for plotting.

Solution

  1. Step 1: Understand subplot grid parameters

    The first two numbers (2, 3) define the grid size: 2 rows and 3 columns.
  2. Step 2: Identify the panel number

    The third number (4) selects the 4th panel in row-wise order for plotting.
  3. Final Answer:

    Divides the figure into 2 rows and 3 columns, then selects the 4th panel for plotting. -> Option D
  4. Quick Check:

    subplot(m, n, p) = grid m x n, panel p [OK]
Hint: Remember subplot(m,n,p) means m rows, n columns, p panel [OK]
Common Mistakes:
  • Confusing the order of rows and columns
  • Thinking subplot creates a matrix of numbers
  • Assuming subplot clears panels automatically
2. Which of the following is the correct syntax to create a 3x1 subplot and plot in the second panel?
easy
A. subplot(3, 1, 2); plot(x, y);
B. subplot(1, 3, 2); plot(x, y);
C. subplot(3, 2, 1); plot(x, y);
D. subplot(2, 3, 2); plot(x, y);

Solution

  1. Step 1: Identify the grid layout

    A 3x1 subplot means 3 rows and 1 column, so subplot(3, 1, p) is correct.
  2. Step 2: Select the second panel

    The third argument '2' selects the second panel in the vertical stack.
  3. Final Answer:

    subplot(3, 1, 2); plot(x, y); -> Option A
  4. Quick Check:

    3 rows, 1 column, panel 2 = subplot(3,1,2) [OK]
Hint: Rows first, then columns, then panel number [OK]
Common Mistakes:
  • Swapping rows and columns in subplot arguments
  • Using wrong panel number for desired position
  • Confusing subplot grid with plot commands
3. What will be the output of the following MATLAB code?
subplot(1,2,1); plot(1:3, [2 4 6]);
subplot(1,2,2); plot(1:3, [1 3 5]);
medium
A. Two plots side by side: first with points (1,2),(2,4),(3,6), second with (1,1),(2,3),(3,5).
B. One plot with both data sets overlaid.
C. Error because subplot indices are incorrect.
D. Two plots stacked vertically.

Solution

  1. Step 1: Understand subplot grid

    subplot(1,2,1) creates a grid with 1 row and 2 columns, selecting the first panel.
  2. Step 2: Plot data in each panel

    The first plot shows points (1,2), (2,4), (3,6). The second subplot(1,2,2) plots points (1,1), (2,3), (3,5).
  3. Final Answer:

    Two plots side by side: first with points (1,2),(2,4),(3,6), second with (1,1),(2,3),(3,5). -> Option A
  4. Quick Check:

    subplot(1,2,p) = two side-by-side plots [OK]
Hint: subplot(1,2,p) means two plots side by side [OK]
Common Mistakes:
  • Thinking plots overlay in one panel
  • Assuming vertical stacking instead of horizontal
  • Misreading subplot indices
4. Identify the error in this MATLAB code snippet:
subplot(2,2,5);
plot(rand(5));
medium
A. plot function cannot be used inside subplot.
B. Panel index 5 is invalid for a 2x2 grid.
C. Missing semicolon after subplot command.
D. rand(5) is incorrect syntax.

Solution

  1. Step 1: Check subplot grid size

    A 2x2 grid has only 4 panels numbered 1 to 4.
  2. Step 2: Validate panel index

    Using 5 as the panel index is invalid and causes an error.
  3. Final Answer:

    Panel index 5 is invalid for a 2x2 grid. -> Option B
  4. Quick Check:

    Panel number must be ≤ rows*columns [OK]
Hint: Panel number must not exceed total grid cells [OK]
Common Mistakes:
  • Using panel number larger than grid size
  • Thinking semicolon affects subplot indexing
  • Believing plot can't be inside subplot
5. You want to create a 2x2 grid of plots showing sine waves with different frequencies. Which code correctly sets up the subplots and plots the waves?
hard
A. subplot(2,2); for k = 1:4 plot(sin(k*x)); end
B. for k = 1:4 subplot(4,1,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end
C. for k = 1:4 subplot(2,2,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end
D. for k = 1:4 subplot(2,2,k+1); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end

Solution

  1. Step 1: Set up correct subplot grid

    subplot(2,2,k) correctly creates a 2x2 grid and selects each panel from 1 to 4.
  2. Step 2: Plot sine waves with increasing frequency

    Inside the loop, x is defined and sin(k*x) is plotted in each subplot panel.
  3. Step 3: Check other options for errors

    for k = 1:4 subplot(4,1,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end uses 4x1 grid, not 2x2. subplot(2,2); for k = 1:4 plot(sin(k*x)); end calls subplot once without panel index. for k = 1:4 subplot(2,2,k+1); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end uses k+1 which causes invalid panel 5.
  4. Final Answer:

    for k = 1:4 subplot(2,2,k); x = linspace(0,2*pi,100); plot(x, sin(k*x)); end -> Option C
  5. Quick Check:

    Loop with subplot(2,2,k) plots 4 panels correctly [OK]
Hint: Use subplot(2,2,k) inside loop k=1 to 4 [OK]
Common Mistakes:
  • Using wrong subplot grid size
  • Not specifying panel index in subplot
  • Using invalid panel numbers
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