2010-03-04 22 views

Respuesta

16

He aquí un ejemplo:

x = randn(100,1)*3;   %# some random data 
e = [-10 -5 -3 -1 1 2 3 20]; %# edges of intervals: e(i) <= x < end(i+1) 
c = histc(x,e);    %# get count in each interval 
bar(e, c, 'histc')   %# bar plot 
set(gca, 'xlim',[e(1) e(end)]) 

output

+0

Muchas gracias ... i utiliza la solución para construir una función para mi contexto de estudio .. – yasmine

+0

¿Hay una manera de hacerlo ¿Todos los contenedores tienen el mismo tamaño x sin importar cuán grande sea en realidad? –

+0

@ userethepowerof2pi: No entiendo, si quieres compartimientos de ancho igual solo usa la función HIST regular. La idea general del código anterior es que queremos intervalos no regulares de diferente ancho – Amro

2

Puede construir su propia herramienta de histograma para crear un histograma personalizado como desee.

  • Uso histc para determinar que los compartimientos cada punto cae dentro.

  • Luego use accumarray para contar la cantidad de elementos en cada contenedor.

  • Luego use la barra para dibujar las barras de sus anchos elegidos. O simplemente cree parches de los tamaños especificados. Use el parche para eso.

O más simplemente, simplemente use hist.

hist(rand(1000,1),[0 .1 .3 .6 1]) 
5

2 soluciones:

  1. Especificar bin centros con el segundo argumento para hist.
  2. Especifique bin Edges con el 2do argumento a histc. Esta función requiere más procesamiento ya que no genera el gráfico directamente - siga para ver un ejemplo de uso.
Cuestiones relacionadas