I want to split an array in sub-arrays of consecutive elements. For example, for the array:
a=[1 2 3 6 7 9 10 15]
I want an output 1 2 3
, 6 7
, 9 10
, 15
.
I think that the natural choice is to use a struct
for this:
[v,x] = find(diff(a)>1) %find "jumps"
xx=[0 x length(a)]
for ii=1:length(xx)-1
cs{ii}=a(xx(ii)+1:xx(ii+1)); %output struct array
end
v =
1 1 1
x =
3 5 7
xx =
0 3 5 7 8
The code works correctly but I was wondering if there are smarter ways to do this.