2010-03-04 3 views

risposta

16

Ecco un esempio:

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

Grazie mille ... ho usato la soluzione per costruire una funzione per il mio contesto di studi .. – yasmine

+0

C'è un modo per rendere più tutti i contenitori hanno la stessa dimensione x non importa quanto sia grande in realtà? –

+0

@ useretothepowerof2pi: Non capisco, se vuoi bidoni di uguale larghezza basta usare la normale funzione HIST. L'idea del codice precedente è che vogliamo intervalli non regolari di larghezza diversa – Amro

2

È possibile creare il proprio strumento di istogramma per creare un istogramma personalizzato a piacere.

  • Usa histc per determinare quali scomparti ogni punto cade dentro.

  • Quindi utilizzare accumarray per contare il numero di elementi in ciascun contenitore.

  • Quindi utilizzare la barra per disegnare barre delle larghezze selezionate. O semplicemente creare patch delle dimensioni indicate. Usa la patch per quello.

O più semplicemente, basta usare hist.

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

2 soluzioni:

  1. Specificare bin centri con la secondo argomento di hist.
  2. Specificare il cestino Bordi con il il secondo argomento su histc. Questa funzione richiede ulteriore elaborazione in quanto non genera il grafico direttamente: seguire il collegamento per un esempio di utilizzo.