MATLAB: Finding the “center integers” of an array

vector vectorization vectors integer double diff find

Consider the input vector:
[1 2 3 10 11 12 15 16 17 20 21 22 23 24 30]'
Let's group the elements of the input vector in the following manner:
[1 2 3] [10 11 12] [15 16 17] [20 21 22 23 24] [30] (This is not part of the output)
Then the desired output is the center integer of these "groupings":
[2 11 16 22 30]
Is there a quick and easy way to do this with only a few functions? (Preferably without a for-loop). Let's assume these integer "groupings" contain an odd number of elements so there is always one center integer.
I have no starting code unfortunately. I considered using the diff command, but I got stuck from there.
Let me know if I need to clarify anything. Thank you for your help.

Best Answer

t = find([true, diff(X)>1, true]);
Output = X((t(1:end-1) + t(2:end)-1)/2);