MATLAB: How to cut a vector in intervals

intervalsMATLABsplittingvector

I need to cut a vector in a determined intervals. The size of my vector is unknown because it depends on the previous input. Lest say my vector is [2:97] and I need it to be cut in intervals of two (I previously made sure the vector can be divided by three) and all put together in a cell. The result has to be {[2 3 4],[5 6 7],[8 9 10],…,[95 96 97]}. How can I do that?

Best Answer

v = 2:97;
intervallength = 3;
assert(isrow(v), 'input not a row vector');
assert(mod(numel(v), intervallength) == 0, 'vector length not divisible by interval length')
splitv = mat2cell(v, 1, ones(1, numel(v)/intervallength) * intervallength);