2011-10-26 16 views
5

Eventuali duplicati:
Determining the number of occurrences of each unique element in a vectoroccorrenze contare su una gamma utilizzando MATLAB

Sono il seguente array:

v = [ 1 5 1 6 7 1 5 5 1 1] 

E ho bisogno di contare i valori e mostra il numero che ha più apparenze.
Dall'esempio sulla parte superiore, la soluzione sarebbe 1 (ci sono cinque 1) di

Grazie in anticipo

+2

@Jonas: questo potrebbe essere più semplice di quello – Jacob

+0

@Jacob: hai ragione. – Jonas

+1

altre domande simili: [Calcola i valori più comuni] (http://stackoverflow.com/questions/1846635), [Come posso contare il numero di elementi di un determinato valore in una matrice?] (Http: // stackoverflow. it/questions/2880933), [C'è un sostituto più elegante per questo ciclo MATLAB?] (http://stackoverflow.com/questions/3427291), [funzione per determinare pmf (X) in matlab] (http: // stackoverflow.com/questions/4068403) – Amro

risposta

10

Usa mode.

Se è necessario restituire il numero di elementi, così, effettuare le seguenti operazioni:

m = mode(v); 
n = sum(v==m); 
fprintf('%d appears %d times\n',m,n); 
1

@Jacob ha ragione: mode(v) vi darà la risposta che cercavi.

Volevo solo aggiungere un bel modo per rappresentare le frequenze di ogni valore:

bar(accumarray(v', 1)) 

mostrerà un bel diagramma a barre con il conteggio di ogni valore v.

9

Un altro metodo sta utilizzando la funzione hist, se si tratta di numeri interi.

numbers=unique(v);  %#provides sorted unique list of elements 
count=hist(v,numbers); %#provides a count of each element's occurrence 

Basta fare in modo di specificare un valore di uscita per la funzione hist, oppure si ritroverà con un grafico a barre.

Problemi correlati