File Exchange

image thumbnail


version (3.82 KB) by Bruno Luong
Partition an input vector into smaller series of subvectors of consecutive elements


Updated 19 Jul 2018

View License

It says all in the summary. Nothing fancy just a convenient tool for spitting vectors.

Cite As

Bruno Luong (2020). SplitVec (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (18)




Matt J

Finally got around to trying this. I like it a lot, but I don't understand how the COL input argument works. Clearer documentation on that with examples would help.


Excellent. Thank you.

Xinyi Shen

This is a great function that I am looking for.
However, it would be more perfect if
1. the array can be unsorted.
2. the indices can be returned
For example, [s,i] = SplitVec([1 2 1 3 2 1])
s={[1 1 1],[2,2],[3]}
i={[1 3 6],[2,5],[4]}
I do not know if it is possible

Bruno Luong


SplitVec(a, @(v) [0; diff(v(1:end-1)).*diff(v(2:end))<0])

OK ... I add the 'decrease' and 'increase' functions by:
case {'increase'}
fun = @(v) diff(v(:,1))<0;
case {'decrease'}
fun = @(v) diff(v(:,1))>0;

But, how to add functions for 'positive' and 'negative' values vector spliting?

Will be possible to generalize this function to split vector on monotonical parts using ismonotinic function (




Ingenious! Clearly explained and easy to follow. Thank you very much!

John D'Errico

As you would expect of all of Bruno's submissions, it does exactly what it says it will do. Superb documentation.

Tom Toner

Thanks a lot for such a great function!


Output specific columns on split-array

Update tiltle and MATLAB version

extend 'type' with split column numbers

New builtin outputs: blockID and subsetorder

fix the bug when 'loc' is required and when working down the columns of matrix

correct bug for empty array, group function
Add output types: 'firstval' 'lastval'

Correct minor bug

correct bug when function handle is passed in second input

multiple column grouping capability

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux