Domanda

Se ho una serie di dati Y e un gruppo di raccoglitori centrata in X, posso utilizzare il comando HIST per trovare quanti di ogni Y sono in ogni bin.

N = hist(Y,X)

Quello che vorrei sapere è se c'è un costruito in funzione che mi può dire che bin ogni Y entra, così

[N,I] = histMod(Y,X)

vorrebbe dire che Y(I == 1) return tutte le Y in bin 1, etc.

So come scrivere questa funzione, quindi mi sto solo chiedendo se c'è già un built-in in MATLAB che fa questo.

È stato utile?

Soluzione

La relativa funzione histc non questo, ma richiede di definire il bin bordi invece di bin centri.

Y = rand(1, 10);
edges = .1:.1:1;
[N, I] = histc(Y, edges);

Calcolo bordi data la bincenters è troppo facile.In un liner:

N = hist(Y, X);

diventa

[Nc, Ic] = histc(Y, [-inf X(1:end-1) + diff(X)/2, inf]);

con Nc == N, più un ulteriore bidone vuoto alla fine (dal momento che assume alcun valore in Y corrisponde inf).Vedere doc histc.

Altri suggerimenti

Se uno è soddisfatto con bordi bin al posto di bidoni,

[N,bin] = histc(y,binedges)

funziona. Aaargh, Matlab le definizioni di funzione sono così nonintuitive

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top