How can I create a custom probability distribution?

I want to define a custom discrete probability mass function. Can I do this using `makedist` or perhaps some other function, if so how?

 采纳的回答

Check out the doc page for distributionFitter and the associated Distribution Fitter app. Despite the name, the app can be used to define a custom distribution that you can subsequently use to create objects of that distribution.

更多回答(1 个)

p = [0.2 0.3 0.5];%probabilities
v = [3 7 10];%discrete values
% P(X=3)=0.2, P(X=7)=0.3 and P(X=10)=0.5 Probability Mass Function
n = 10000;%number of samples
c = cumsum([0,p(:).']);
c = c/c(end);%ensure cumulative is 1
[~,i] = histc(rand(1,n),c);
r = v(i);%map, generates n samples with the probability mass function provided

1 个评论

Thanks, but I don't think that's quite it. I guess I was unclear. Perhaps I should've said: I'd like to create a custom probability distribution object. I'd like to do that to be able to define a discrete pmf. That's why modifying makedist sounds like a possibility.

请先登录,再进行评论。

产品

版本

R2021b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by