unique occurance table from array

I would like to be able to return the count of occurences of each element in a vector.
For example if I have a vector:
x=[10 25 4 10 9 4 4]
I expect the result to be
10 2
25 1
4 3
9 1

 Respuesta aceptada

Star Strider
Star Strider el 4 de Mzo. de 2015
Use the hist function:
x=[10 25 4 10 9 4 4];
ux = unique(x);
counts = hist(x, ux);
result = [ux' counts']

4 comentarios

Rahul Shelar
Rahul Shelar el 4 de Mzo. de 2015
Editada: Rahul Shelar el 4 de Mzo. de 2015
Thanks its really working using hist function on octave..... I didnt knew about hist function I ve tried like this y=unique(x); disp(y); m=length(y); n=length(x); disp(n);
a=zeros(m);
for i=1:1:m
for j=1:1:n
if(y(i)==x(j))
a(i)=a(i)+1;
end
end
end
a=a(:,1); disp(a);
I really like ur approach.......
Star Strider
Star Strider el 4 de Mzo. de 2015
My pleasure!
Image Analyst
Image Analyst el 4 de Mzo. de 2015
Also learn about its friends like histc() and imhist(). The histogram is like the PDF (probability distribution function), and related to that is the CDF, cumulative distribution function which you can get from passing the counts into cumsum(). By the way, hist() is now deprecated - they tell you to use histogram() instead.
Star Strider
Star Strider el 4 de Mzo. de 2015
Note that Rahul Shelar is using Octave.

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 4 de Mzo. de 2015

Comentada:

el 4 de Mzo. de 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by