MATLAB: Find unique values in a sequence containing at least 3 elements

unique values in array

I want to find the unique values for each sequence containing minimum 3 repeating elements in a vector. For example, consider the vector:
x = [1 2 2 3 4 4 4 5 6 6 6 6 7 7 7 8];
The output (unique values) should be:
y = [4 6 7];
How can I achieve this?

Best Answer

u = unique(x);
a = histc(x,u);
y = u(a>=3);
This should do the trick. First determine the unique values in the vector, then count the number of times they occur. Then consider only the values that occur more than 2 times.