MATLAB: How to create a limited frequent values in array

frequent values in array

Is there anyone know how to create limited frequent values in array? Because, what I found is only the most frequent. I'd like to make it like two or three times appear. For example this problem :
Return a list of all values (sorted smallest to largest) that appear exactly three times in the input vector x. So
if
x = [1 2 5 2 2 7 8 3 3 1 3 8 8 8]
then
y = [2 3]

Best Answer

You can use hist() and unique()
x = [1 2 5 2 2 7 8 3 3 1 3 8 8 8];
[N,bins] = hist(x,unique(x));
bins(N==3)
Of course you can save that output in the vector, y
y = bins(N==3);