I have a support (supp_epsilon
) and a probability mass function (pr_mass_epsilon
) in Matlab, constructed as follows.
supp_epsilon=[
The randsample function can do that directly:
result = randsample(supp_epsilon, n, true, pr_mass_epsilon);
Manual approach:
n
samples of a uniform random variable in the interval (0,1).result = supp_epsilon(sum(rand(1,n)>cumsum(pr_mass_epsilon(:)), 1)+1);
For your example, with n=1e6
either of the two approaches gives a histogram similar to this:
histogram(result, 'normalization', 'probability')