How to plot a normalised cumulative histogram

58 visualizaciones (últimos 30 días)
Riti Patel
Riti Patel el 24 de Abr. de 2015
Comentada: Brendan Hamm el 28 de Abr. de 2015
I've got a vector of data of length around 5000000. I'm trying to plot a cumulative histogram of this data. I've previously plotted a normalised histogram using the trapz command:
[f,z]=hist(CharPoly,1000000);
bar(z,f/trapz(z,f))
where CharPoly is the data vector. That worked fine but I'm now looking to plot a cumulative histogram from this data and I can't figure out how to incorporate either cumsum or cumtrapz into this.
Thanks!

Respuesta aceptada

Brendan Hamm
Brendan Hamm el 24 de Abr. de 2015
Editada: Brendan Hamm el 24 de Abr. de 2015
If using 2014b or higher you can use the histogram command:
histogram(CharPoly,'Normalization','cdf')
If prior to 2014b use hist and bar:
[f,z]=hist(CharPoly,1000000);
% Make pdf by normalizing counts
% Divide by the total counts and the bin width to make area under curve 1.
fNorm = f/(sum(f)*(z(2)-z(1)));
% cdf is no cumulative sum
fCDF = cumsum(fNorm);
bar(z,fCDF) % display
This is done from my head, but I believe this is correct.
  3 comentarios
Riti Patel
Riti Patel el 28 de Abr. de 2015
Don't worry, I've sorted it!
Brendan Hamm
Brendan Hamm el 28 de Abr. de 2015
Curiosity begs me to ask, What was the issue?

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by