Bird
Raised Fist0
MATLABdata~5 mins

Probability distributions in MATLAB

Choose your learning style10 modes available
Introduction

Probability distributions help us understand how likely different outcomes are in a random process.

To find the chance of rolling a certain number on a dice.
To model the heights of people in a group.
To predict the number of emails you get in an hour.
To analyze test scores and their spread.
To simulate random events in games or experiments.
Syntax
MATLAB
pd = makedist('DistributionName', 'Parameter1', value1, 'Parameter2', value2, ...);
prob = pdf(pd, x);
cumProb = cdf(pd, x);
randomSamples = random(pd, n, 1);

makedist creates a probability distribution object.

pdf gives the probability density or mass at a point.

Examples
This creates a normal distribution with mean 0 and standard deviation 1, then finds the probability density at 0.
MATLAB
pd = makedist('Normal', 'mu', 0, 'sigma', 1);
prob = pdf(pd, 0);
This creates a binomial distribution for 10 trials with 0.5 success chance, then finds the cumulative probability up to 5 successes.
MATLAB
pd = makedist('Binomial', 'N', 10, 'p', 0.5);
cumProb = cdf(pd, 5);
This creates a Poisson distribution with average 3, then generates 5 random samples from it.
MATLAB
pd = makedist('Poisson', 'lambda', 3);
samples = random(pd, 5, 1);
Sample Program

This program creates a normal distribution with mean 5 and standard deviation 2. It calculates the probability density and cumulative probability at the value 7, then prints the results.

MATLAB
pd = makedist('Normal', 'mu', 5, 'sigma', 2);
value = 7;
prob_density = pdf(pd, value);
cum_probability = cdf(pd, value);
fprintf('Probability density at %.1f is %.4f\n', value, prob_density);
fprintf('Cumulative probability up to %.1f is %.4f\n', value, cum_probability);
OutputSuccess
Important Notes

Use makedist to create different distributions like Normal, Binomial, Poisson, etc.

pdf is for probability density (continuous) or mass (discrete) at a point.

cdf gives the chance of a value being less than or equal to a point.

Summary

Probability distributions describe how likely outcomes are.

Use makedist to create distributions in MATLAB.

pdf and cdf help find probabilities at or below points.

Practice

(1/5)
1. Which MATLAB function is used to create a probability distribution object?
easy
A. rand
B. makedist
C. histogram
D. plot

Solution

  1. Step 1: Understand the purpose of each function

    makedist creates a probability distribution object, while rand generates random numbers, histogram plots data distribution, and plot creates graphs.
  2. Step 2: Identify the correct function for creating distributions

    Only makedist is designed to create probability distribution objects in MATLAB.
  3. Final Answer:

    makedist -> Option B
  4. Quick Check:

    Function to create distribution = makedist [OK]
Hint: Use makedist to create distributions in MATLAB [OK]
Common Mistakes:
  • Confusing makedist with rand
  • Using histogram to create distributions
  • Trying to use plot for distributions
2. Which of the following is the correct syntax to create a normal distribution with mean 0 and standard deviation 1 in MATLAB?
easy
A. pd = makedist('normal', 0, 1);
B. pd = makedist('Normal', 'mean', 0, 'std', 1);
C. pd = makedist('Normal', 0, 1);
D. pd = makedist('Normal', 'mu', 0, 'sigma', 1);

Solution

  1. Step 1: Recall the correct parameter names for normal distribution

    In MATLAB, the normal distribution parameters are specified as 'mu' for mean and 'sigma' for standard deviation.
  2. Step 2: Check the syntax for makedist

    The correct syntax uses name-value pairs: makedist('Normal', 'mu', 0, 'sigma', 1). Other options use incorrect parameter names or formats.
  3. Final Answer:

    pd = makedist('Normal', 'mu', 0, 'sigma', 1); -> Option D
  4. Quick Check:

    Normal dist params = 'mu' and 'sigma' [OK]
Hint: Use 'mu' and 'sigma' as parameter names for normal dist [OK]
Common Mistakes:
  • Using lowercase 'normal' instead of 'Normal'
  • Using 'mean' and 'std' instead of 'mu' and 'sigma'
  • Passing parameters without name-value pairs
3. What is the output of the following MATLAB code?
pd = makedist('Exponential', 'mu', 2);
p = pdf(pd, 1);
disp(round(p, 3));
medium
A. 0.303
B. 0.368
C. 0.500
D. 0.607

Solution

  1. Step 1: Understand the exponential distribution PDF formula

    The PDF for exponential with mean mu=2 is f(x) = (1/2)*exp(-x/2). For x=1, f(1) = 0.5 * exp(-0.5) ≈ 0.5 * 0.6065 = 0.3033.
  2. Step 2: Compute and round the value

    p ≈ 0.3033, round(p, 3) = 0.303.
  3. Final Answer:

    0.303 -> Option A
  4. Quick Check:

    (1/mu)*exp(-x/mu) at x=1, mu=2 ≈ 0.303 [OK]
Hint: Recall pdf = (1/mu)*exp(-x/mu) for exponential [OK]
Common Mistakes:
  • Ignoring the (1/mu) factor
  • Confusing PDF with CDF
  • Rounding errors causing mismatch
4. Identify the error in this MATLAB code snippet:
pd = makedist('Binomial', 'n', 10, 'p', 0.5);
prob = cdf(pd, 11);
medium
A. The probability p must be an integer
B. makedist does not support 'Binomial' distribution
C. The cdf input value 11 exceeds the number of trials n
D. The variable name 'prob' is reserved

Solution

  1. Step 1: Understand binomial distribution parameters

    Binomial distribution with n=10 means possible outcomes are from 0 to 10.
  2. Step 2: Check the cdf input value

    Calling cdf(pd, 11) asks for probability of outcomes ≤ 11, but 11 is outside the valid range (max 10).
  3. Step 3: Identify the error

    Input to cdf must be within 0 to n. Using 11 is invalid and causes an error or unexpected result.
  4. Final Answer:

    The cdf input value 11 exceeds the number of trials n -> Option C
  5. Quick Check:

    cdf input must be ≤ n for binomial [OK]
Hint: cdf input must be within distribution support range [OK]
Common Mistakes:
  • Using cdf input outside valid range
  • Thinking p must be integer
  • Assuming makedist lacks binomial support
5. You want to calculate the probability that a normally distributed variable with mean 5 and standard deviation 2 is less than 7 in MATLAB using a probability distribution object. Which code correctly computes this?
hard
A. pd = makedist('Normal', 'mu', 5, 'sigma', 2); p = cdf(pd, 7);
B. p = normcdf(7, 5, 2);
C. pd = makedist('Normal', 5, 2); p = pdf(pd, 7);
D. p = cdf('Normal', 7, 5, 2);

Solution

  1. Step 1: Understand how to create a normal distribution object

    Use makedist('Normal', 'mu', 5, 'sigma', 2) to create the distribution with mean 5 and std 2.
  2. Step 2: Use cdf to find probability less than 7

    Calling cdf(pd, 7) returns the cumulative probability up to 7.
  3. Step 3: Check other options

    p = normcdf(7, 5, 2); uses normcdf which is valid but not using makedist. pd = makedist('Normal', 5, 2); p = pdf(pd, 7); incorrectly uses pdf instead of cdf. p = cdf('Normal', 7, 5, 2); has wrong syntax for cdf.
  4. Final Answer:

    pd = makedist('Normal', 'mu', 5, 'sigma', 2); p = cdf(pd, 7); -> Option A
  5. Quick Check:

    Use makedist + cdf for cumulative probability [OK]
Hint: Use cdf with makedist object for cumulative probability [OK]
Common Mistakes:
  • Using pdf instead of cdf
  • Wrong syntax for cdf
  • Ignoring distribution parameters
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