Bird
Raised Fist0
MATLABdata~20 mins

Running simulations in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Simulation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple simulation loop
What is the output of the following MATLAB code that simulates a simple process?
MATLAB
result = 0;
for i = 1:5
    result = result + i^2;
end
fprintf('%d\n', result);
AError: Undefined variable 'result'
B15
C10
D55
Attempts:
2 left
💡 Hint
Remember that i^2 means i squared and the loop adds these values.
🧠 Conceptual
intermediate
1:30remaining
Understanding simulation time steps
In a simulation that updates a system every 0.1 seconds for 2 seconds, how many iterations will the simulation loop run?
A20
B2
C10
D200
Attempts:
2 left
💡 Hint
Divide total time by time step to find iterations.
🔧 Debug
advanced
2:00remaining
Identify the error in this simulation code
What error will this MATLAB code produce when run?
MATLAB
time = 0:0.5:5;
for t = time
    y = sin(t);
end
fprintf('Final y: %f\n', y);
ANo error, prints Final y: -0.958924
BError: Index exceeds matrix dimensions.
CNo error, prints Final y: 0.0
DError: Undefined variable 'y'.
Attempts:
2 left
💡 Hint
Check the loop variable and how MATLAB handles for loops over arrays.
📝 Syntax
advanced
1:30remaining
Syntax error in simulation update step
Which option contains the correct syntax to update the variable 'position' by adding velocity times time step 'dt' in MATLAB?
Aposition = position + velocity . dt;
Bposition = position + velocity * dt;
Cposition =+ velocity * dt;
Dposition += velocity * dt;
Attempts:
2 left
💡 Hint
MATLAB supports both explicit assignment and '+=' (R2016b+).
🚀 Application
expert
2:30remaining
Result of a stochastic simulation
Consider this MATLAB code simulating a random walk for 3 steps starting at 0. What is the possible output of 'position' after running the code once?
MATLAB
position = 0;
steps = 3;
for i = 1:steps
    move = randi([-1 1]);
    position = position + move;
end
fprintf('%d\n', position);
AOnly positive integers
BOnly 0
CAny integer from -3 to 3
DOnly negative integers
Attempts:
2 left
💡 Hint
Each step can move -1, 0, or +1, so position can vary widely.

Practice

(1/5)
1. What is the main purpose of using a for loop in running simulations in MATLAB?
easy
A. To repeat a set of commands multiple times automatically
B. To create graphical user interfaces
C. To store data permanently on disk
D. To define new functions

Solution

  1. Step 1: Understand the role of for loops

    A for loop repeats commands a fixed number of times, which is essential for running simulations step-by-step.
  2. Step 2: Match the purpose to simulation needs

    Simulations require repeating calculations or processes many times to model changes over time, which for loops handle well.
  3. Final Answer:

    To repeat a set of commands multiple times automatically -> Option A
  4. Quick Check:

    Loop repeats commands = repeat steps [OK]
Hint: Loops repeat steps automatically, perfect for simulations [OK]
Common Mistakes:
  • Confusing loops with data storage
  • Thinking loops create GUIs
  • Mixing loops with function definitions
2. Which of the following is the correct syntax to run a simulation loop 10 times in MATLAB?
easy
A. repeat 10 times % simulation code endrepeat
B. for i = 1:10 % simulation code end
C. loop i = 1 to 10 % simulation code endloop
D. while i < 10 % simulation code end

Solution

  1. Step 1: Recall MATLAB for loop syntax

    MATLAB uses for variable = start:end to run loops a fixed number of times.
  2. Step 2: Compare options with correct syntax

    for i = 1:10 % simulation code end matches MATLAB syntax exactly; others use incorrect keywords or structures.
  3. Final Answer:

    for i = 1:10 % simulation code end -> Option B
  4. Quick Check:

    MATLAB loops use 'for i = start:end' [OK]
Hint: MATLAB loops use 'for i = start:end' syntax [OK]
Common Mistakes:
  • Using non-MATLAB keywords like 'loop' or 'repeat'
  • Confusing while with for loops
  • Missing the end keyword
3. What will be the output of the following MATLAB code?
for t = 1:3
  disp(t^2)
end
medium
A. 1 4 9
B. 1 2 3
C. 2 4 6
D. Error: Undefined function

Solution

  1. Step 1: Understand the loop iterations

    The loop runs with t = 1, 2, 3.
  2. Step 2: Calculate the displayed values

    Each iteration displays t squared: 1^2=1, 2^2=4, 3^2=9.
  3. Final Answer:

    1 4 9 -> Option A
  4. Quick Check:

    Squares of 1,2,3 = 1 4 9 [OK]
Hint: Square each loop index to find output quickly [OK]
Common Mistakes:
  • Printing t instead of t squared
  • Confusing output with sums
  • Expecting syntax errors
4. Identify the error in this MATLAB simulation code:
for i = 1:5
  result = i * 2
end
disp(result)
medium
A. Missing semicolon after result assignment
B. The loop variable 'i' is not initialized
C. No error; code runs and displays the last result
D. Variable 'result' is not defined before the loop

Solution

  1. Step 1: Check variable initialization

    In MATLAB, variables can be created inside loops without prior definition.
  2. Step 2: Understand loop and output behavior

    The loop runs 5 times, updating 'result' each time; after loop, 'result' holds last value (5*2=10), which is displayed.
  3. Final Answer:

    No error; code runs and displays the last result -> Option C
  4. Quick Check:

    Loop updates variable; last value shown [OK]
Hint: Variables inside loops update each iteration; last value remains [OK]
Common Mistakes:
  • Thinking semicolons are mandatory to avoid errors
  • Assuming variables must be pre-declared
  • Confusing loop variable initialization
5. You want to simulate the growth of a population starting at 100, increasing by 10% each step, for 5 steps. Which MATLAB code correctly runs this simulation and stores all population values in an array pop?
hard
A. pop = zeros(5,1); pop(1) = 100; for i = 1:5 pop(i+1) = pop(i) * 1.1; end
B. pop = 100; for i = 1:5 pop = pop * 1.1; end
C. pop = []; for i = 1:5 pop(i) = 100 * 1.1^i; end
D. pop = zeros(1,5); pop(1) = 100; for i = 2:5 pop(i) = pop(i-1) * 1.1; end

Solution

  1. Step 1: Understand the simulation requirements

    Start at 100, increase by 10% each step, store all 5 values in an array.
  2. Step 2: Analyze each option for correctness

    pop = zeros(1,5); pop(1) = 100; for i = 2:5 pop(i) = pop(i-1) * 1.1; end initializes array, sets first value, then correctly updates subsequent values using previous step's value. pop = 100; for i = 1:5 pop = pop * 1.1; end overwrites single value, no array. pop = []; for i = 1:5 pop(i) = 100 * 1.1^i; end calculates powers but starts from step 1, missing initial 100 at index 1. pop = zeros(5,1); pop(1) = 100; for i = 1:5 pop(i+1) = pop(i) * 1.1; end tries to access index 6 in 5-element array, causing error.
  3. Final Answer:

    pop = zeros(1,5); pop(1) = 100; for i = 2:5 pop(i) = pop(i-1) * 1.1; end -> Option D
  4. Quick Check:

    Initialize array, set first value, update from previous [OK]
Hint: Initialize array, set first value, update from previous step [OK]
Common Mistakes:
  • Not storing all values in an array
  • Indexing beyond array size
  • Overwriting single variable instead of array
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