how to remove data points occur less in a data set

Hi, suppose i have a data set x:
x = [0,2,9,2,5,8,7,3,1,9,4,3,5,8,10,0,1,2,9,5,10] ;
figure(1)
[n,b] = hist(x)
bar(b,n) ;
use above code i can plot the distribution. Is there anyway that i can remove the points that occur less than others, for example, remove the data that occur less than 2 times in the array.
thank you

Answers (1)

x = [0,2,9,2,5,8,7,3,1,9,4,3,5,8,10,0,1,2,9,5,10] ;
ii=unique(x)
[aa,bb] = hist(x,ii)
idx=aa>=2
bar(bb(idx),aa(idx))

4 Comments

Thanks a lot. It works. What if the data is random, not integers, and i cannot change the order of the array, just set the values to 0 instead of remove them.
x = [0,2.1,9.2,2.5,2.5,8.4,7,3,1,9,4,3,5,8.4,10.5,0,1,2,9,5,10.5] ;
ii=unique(x)
[aa,bb] = hist(x,ii)
idx=aa<2
bb(idx)=0
[ii,jj]=hist(bb)
bar(jj,ii)
Great! Works perfect. Thank you very much!
Xi when the answer helps, click on [accept this answer]

Sign in to comment.

Asked:

Xi
on 2 Apr 2014

Edited:

on 2 Apr 2014

Community Treasure Hunt

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

Start Hunting!