📖 Scenario: You are working as a scientist who wants to simulate the results of rolling a six-sided die multiple times. You want to see how many times each number appears after many rolls.
🎯 Goal: Build a MATLAB program that simulates rolling a die 100 times, counts how many times each face appears, and then displays the results.
📋 What You'll Learn
Create a vector to represent the faces of a six-sided die
Create a variable to store the number of rolls (100)
Simulate rolling the die 100 times and store the results
Count how many times each face appears
Display the counts for each face
💡 Why This Matters
🌍 Real World
Simulations like this help scientists and engineers understand random processes, such as dice games, quality control, or risk analysis.
💼 Career
Knowing how to run simulations and analyze results is important for data scientists, engineers, and researchers who model real-world systems.
Progress0 / 4 steps
1
Create the die faces vector
Create a vector called die_faces with the values [1 2 3 4 5 6] representing the six sides of a die.
MATLAB
Hint
Use square brackets to create a vector with the numbers 1 to 6 separated by spaces.
2
Set the number of rolls
Create a variable called num_rolls and set it to 100 to represent the number of times the die will be rolled.
MATLAB
Hint
Simply assign the number 100 to the variable num_rolls.
3
Simulate rolling the die
Create a vector called roll_results that simulates rolling the die num_rolls times. Use the randi function with arguments [1 6] and num_rolls.
MATLAB
Hint
Use randi([1 6], 1, num_rolls) to generate random integers between 1 and 6, num_rolls times.
4
Count and display the results
Create a vector called counts that counts how many times each face in die_faces appears in roll_results. Use the histcounts function with edges 0.5:1:6.5. Then, use disp to display the counts vector.
MATLAB
Hint
Use histcounts with edges from 0.5 to 6.5 stepping by 1 to count occurrences of each die face. Then display the counts with disp.
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
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.
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.
Final Answer:
To repeat a set of commands multiple times automatically -> Option A
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
Step 1: Recall MATLAB for loop syntax
MATLAB uses for variable = start:end to run loops a fixed number of times.
Step 2: Compare options with correct syntax
for i = 1:10
% simulation code
end matches MATLAB syntax exactly; others use incorrect keywords or structures.
Final Answer:
for i = 1:10
% simulation code
end -> Option B
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
Step 1: Understand the loop iterations
The loop runs with t = 1, 2, 3.
Step 2: Calculate the displayed values
Each iteration displays t squared: 1^2=1, 2^2=4, 3^2=9.
Final Answer:
1 4 9 -> Option A
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
Step 1: Check variable initialization
In MATLAB, variables can be created inside loops without prior definition.
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.
Final Answer:
No error; code runs and displays the last result -> Option C
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
Step 1: Understand the simulation requirements
Start at 100, increase by 10% each step, store all 5 values in an array.
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.
Final Answer:
pop = zeros(1,5);
pop(1) = 100;
for i = 2:5
pop(i) = pop(i-1) * 1.1;
end -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.