MATLAB: Classify numbers in a vector

vector operation

Hello, I got a problem when dealing with numbers classifying in a vector. Problem is like that:
With a vector A = [1 2 3 4 5 9 10 13 15 17 18 19 21 24];
I try to separate the consecutive series and non-consecutive series so that I am able to have outputs like:
a=[1 2 3 4 5]
b=[9 10]
c=[13]
d=[15]
..etc
I tried diff() and regexp (), but I still can't solve it.
If anyone can help, it would be greatly appreciated.
Thank you!

Best Answer

Here is a simple solution in just two lines:
>> A = [1 2 3 4 5 9 10 13 15 17 18 19 21 22 24 25];
>> idx = find([true,1~=diff(A),true]);
>> out = arrayfun(@(x,y)A(x:y),idx(1:end-1),idx(2:end)-1,'UniformOutput',false);
>> out{:}
ans =
1 2 3 4 5
ans =
9 10
ans =
13
ans =
15
ans =
17 18 19
ans =
21 22
ans =
24 25