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

Learn moreOpportunities for recent engineering grads.

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

Asked by Daniel Chang on 25 Aug 2011

[EDIT: 20110826 15:26 CDT - merge duplicate - WDR]

Can someone please help me write an equation to fit a log normal distribution curve? I'm really bad at writing "anything" in matlab and ezyfit gives me several errors when I try. Please help if you can and thank you.

[Information from duplicate]

I'm using Matlab v.7.5.x and this version lacks many of the new and easier commands and functions for data fitting. I'm using ezyfit to make up for the lack of data fitting but ezyfit lacks the log-normal distribution fitting, if anyone can help me by posting up the equation of the log-normal fit it would be very helpful and greatly appreciated. Thank you.

*No products are associated with this question.*

Answer by Rick Rosson on 25 Aug 2011

Do you have access to the *Statistics Toolbox*? If so, please try the `lognfit` function. For more information (including a simple example):

>> doc lognfit

HTH.

Rick

Answer by Daniel Chang on 26 Aug 2011

I don't have the statistics toolbox, this is for Matlab v. 7.5.x and most of the functions are lacking so I use ezyfit to make up for the lack of Matlab controls.

Answer by bym on 26 Aug 2011

you can try this from the FEX:

Daniel Chang on 31 Aug 2011

I can't seem to get the fit function to work-

plot_log_normal( x,params,hAx,plot_num,fontsize )

I have problems with the hAx variable and it gives me a ylim error.

Answer by Rick Rosson on 31 Aug 2011

You can find closed-form equations for the PDF and CDF on Wikipedia, and then use one or the other to estimate a curve that "fits" your data as closely as you can. You could then define an error statistic (perhaps sum of the squared deviation) that measures how "close" your estimate fits the data, and then try to minimize the error statistic through trial-and-error.

Obviously, this approach is not ideal, but without the *Statistics Toolbox* or *Curve Fitting Toolbox*, I am not sure what else to suggest.

The link to Wikipedia is: Log-Normal Distribution

Please note that base MATLAB provides all of the mathematical functions you will need for both the PDF and the CDF. These include:

- the error function -
`erf` - the exponential -
`exp` - and the natural logarithm -
`log`

HTH.

Rick

Answer by Euan on 7 Dec 2012

For a set of data x, the two maximum likelihood parameters for a log-normal distribution are mean(log(x))and std(log(x)). The resulting density function is: f(x) = 1/sqrt(2 pi) 1/(s x) exp(-(1/2s^2)(loge(x)-m)^2 ). See MatLab lognpdf and logncdf (but these may be in the stats toolbox).

## 0 Comments