2011-10-26 23 views
5

Duplicar posibles:
Determining the number of occurrences of each unique element in a vectorocurrencias contar con una matriz utilizando MATLAB

He la siguiente matriz:

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

Y Necesito contar los valores y muestra el número que tiene más apariencias.
A partir del ejemplo en la parte superior, la solución sería 1 (hay cinco de 1)

Gracias de antemano

+2

@Jonas: Esto podría ser más simple que eso – Jacob

+0

@Jacob: tienes razón. – Jonas

+1

otras preguntas similares: [Calcular valores más comunes] (http://stackoverflow.com/questions/1846635), [¿Cómo puedo contar el número de elementos de un valor dado en una matriz?] (Http: // stackoverflow. com/questions/2880933), [¿Hay un reemplazo más elegante para este ciclo de MATLAB?] (http://stackoverflow.com/questions/3427291), [función para determinar pmf (X) en matlab] (http: // stackoverflow.com/questions/4068403) – Amro

Respuesta

10

Uso mode.

Si tiene que devolver el número de elementos, así, haga lo siguiente:

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

@Jacob tiene razón: mode(v) le dará la respuesta que necesita.

Yo sólo quería añadir una buena manera de representar las frecuencias de cada valor:

bar(accumarray(v', 1)) 

mostrará un diagrama de barras agradable con el recuento de cada valor en v.

9

Otro método es el uso de la función hist, si se trata de enteros.

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

Solo asegúrese de especificar un valor de salida para la función hist, o terminará con un gráfico de barras.

Cuestiones relacionadas