Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Using MATLAB, what is the best way to find the integral of a bounded range of a CDF?

Asked by Aaron on 7 Jun 2013

Using MATLAB, what is the best way to find the integral of a bounded range of a CDF. I've heard of trapz, cumtrapz, etc. but I do not know the best way to proceed for integrating CDFs. Please refer to the following code:

u = 1;
s = 1;
X = random('Normal',u,s,1,10000);
pd = makedist('Normal','mu',u,'sigma',s);
xAxis = min(X):.0001:max(X);
c_pd = cdf(pd,xAxis);
r = icdf(pd,[.3,.6]);
plot(xAxis,c_pd)

Basically, I am trying to integrate c_pd between the corresponding X values for .3 and .6 (found by using icdf). However, c_pd is a vector and not the actual cdf function. Does anyone have ideas on the best way to find the integral of this regardless of the distribution type (i.e. Normal, Rician, etc.)? Please advise. Thank you.

0 Comments

Aaron

Products

No products are associated with this question.

1 Answer

Answer by Mike Hosea on 7 Jun 2013
Accepted answer

Well, you have the function as well, not just the vector. If I understand you correctly,

integral(@(x)cdf(pd,x),r(1),r(2))

7 Comments

Mike Hosea on 11 Jun 2013

Aaron, are you all set now? Anonymous functions serve two purposes. One is to fix variables in a function definition, and the other is to provide a quick way of defining functions (versus writing a .m file). Here CDF is formally a function of two variables, pd and x, and we want a function of one variable, x. In general, if we have a function of two variables f(x,y), the anonymous function g = @(x)f(x,y) defines a function g(x) based on value of y at the moment that we created g. So g = @(x)cdf(pd,x) creates a function g(x) that is based on the value of pd at the moment we created g. Note that changing pd doesn't change g. You have to re-define g via g = @(x)cdf(pd,x) to pick up the new value of pd. -- Mike

Aaron on 12 Jun 2013

Yes, thank you very much. And, I appreciate the clarification on needed to re-define g if pd changes. I would not have known!

Aaron on 12 Jun 2013

And thank you to everyone for the help!

Mike Hosea

Contact us