How to generate random number from cumulative distribution function (CDF) in Matlab

52 ビュー (過去 30 日間)
Moe
Moe 2015 年 6 月 5 日
コメント済み: Moe 2015 年 6 月 5 日
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

採用された回答

Image Analyst
Image Analyst 2015 年 6 月 5 日
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.

その他の回答 (2 件)

Image Analyst
Image Analyst 2015 年 6 月 5 日
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;

Sean de Wolski
Sean de Wolski 2015 年 6 月 5 日
doc slicesample
doc random
  1 件のコメント
Moe
Moe 2015 年 6 月 5 日
with this command:
rnd = slicesample(initial,nsamples,'pdf',pdf)
Can you give me a simple example of it?

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by