Borrar filtros
Borrar filtros

normal distribution from data

26 visualizaciones (últimos 30 días)
harley
harley el 10 de Sept. de 2013
is there a more efficient way to derive a normal distribution.
% Deriving Normal Distribution From the Data
x=0:1:12;
m=mean(Data);
s=std(Data);
p=(1/(s*sqrt(2*pi)))*exp((-(x-m).^2)/(2*s^2));
  5 comentarios
Roger Stafford
Roger Stafford el 10 de Sept. de 2013
Image Analyst, it isn't 'x' that Harley is stating has the normal distribution. It is 'data' which isn't being specified here. The 'x' is the independent variable in the hypothesized normal distribution. A plot of
plot(x,p)
would give the theoretical normal distribution pdf values as functions of x for the mean and std which have been computed from 'data'.
Image Analyst
Image Analyst el 10 de Sept. de 2013
You're right - I messed up and thought that x was also the Data.

Iniciar sesión para comentar.

Respuesta aceptada

Youssef  Khmou
Youssef Khmou el 10 de Sept. de 2013
Here is another suggestion:
y=pdf('Normal',x,m,s);
plot(x,y);
  2 comentarios
Image Analyst
Image Analyst el 10 de Sept. de 2013
It's fewer characters, so it's simpler to look at, but I doubt it's faster or more efficient (since there is more than one line of code inside that function), but I doubt he really wanted/needed more efficiency or speed anyway.
Youssef  Khmou
Youssef Khmou el 11 de Sept. de 2013
Yes Mr @Image Analyst, the advantage i see is that this function gives a choice for other laws besides the Gaussian,

Iniciar sesión para comentar.

Más respuestas (2)

Shashank Prasanna
Shashank Prasanna el 10 de Sept. de 2013
Editada: Shashank Prasanna el 10 de Sept. de 2013
Since this is normal distribution, the mean and std of the data are the maximum likelihood estimates for the normal distribution from the data.
Once you have the PDF, like you have in the last line of code as 'p', you could plot the PDF using x to span -4*sigma to +4*sigma:
x = -4*s:0.01:4*s
p=(1/(s*sqrt(2*pi)))*exp((-(x-m).^2)/(2*s^2));
plot(x,p)
You could use a wider range if you wanted to.

Roger Stafford
Roger Stafford el 10 de Sept. de 2013
You might try the Statistics Toolbox function 'normplot' to see how closely your 'data' comes to a normal distribution.

Community Treasure Hunt

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

Start Hunting!

Translated by