how chose a number with unequal probability?

1 view (last 30 days)
My question is if I use randi function and say between 1 : 100, it chooses randomly a number giving equal probability to all numbers in between. Suppose I want to chose a number between 1 and 100 but give different probability for each number say proportional to the number itself.. so that 1 has a much lower probability to pick compared to 100 for e.g. how would I do that with randi function? Is that possible at all? Thanks in advance for any help.

Accepted Answer

Steven Lord
Steven Lord on 23 Jan 2017
Use the randsample function from Statistics and Machine Learning Toolbox with a vector of weights.

More Answers (1)

Matt J
Matt J on 23 Jan 2017
Edited: Matt J on 23 Jan 2017
delta=1/(100*101/2);
probs=[0,cumsum((1:100)*delta)];
[~,~,theresult]=histcounts(rand,probs);

Categories

Find more on Get Started with Statistics and Machine Learning Toolbox 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!