How to generate random number from cumulative distribution function (CDF) in Matlab
    16 views (last 30 days)
  
       Show older comments
    
Hi everyone,
Similar to R program, I'm looking for a code in Matlab that I can generate a set of random number with a specific mean (M) and standard deviation (sd).
R code to generate random number with normal distribution from CDF:
> pnorm(1.96, mean=0, sd=1)
[1] 0.9750021
0 Comments
Accepted Answer
  Image Analyst
      
      
 on 5 Jun 2015
        For the more general case of an arbitrary CDF , you have to use inverse transform sampling. Attached is an example for generating a Rayleigh transform.
0 Comments
More Answers (2)
  Image Analyst
      
      
 on 5 Jun 2015
        Did you see the example in the help for randn()? Here it is:
Random Numbers from Normal Distribution with Specific Mean and Variance
This example shows how to create an array of 
random floating-point numbers that are drawn 
from a normal distribution having a mean of 500 and variance of 25.
The randn function returns a sample of random numbers from a normal distribution 
with mean 0 and variance 1. The general theory of random variables
states that if x is a random variable whose mean is μ
x
 and variance is σ
2
x
, then the random variable, y, defined by y=ax+b,
where a and b are constants, has mean μ
y
=aμ
x
+b and variance σ
2
y
=a
2
σ
2
x
. You can apply this concept to get a sample of 
normally distributed random numbers with mean 500 and variance 25.
First, initialize the random number generator to make the results in this example repeatable.
rng(0,'twister');
Create a vector of 1000 random values 
drawn from a normal distribution with a mean of 500 
and a standard deviation of 5.
a = 5;
b = 500;
y = a.*randn(1000,1) + b;
0 Comments
See Also
Categories
				Find more on Random Number Generation in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

