MATLAB: Creating subvectors from a vector

arraysfor loopMATLABvectors

Greetings of the day!
I have a vector X of length L. I would like to create multiple vectors from it using
X(i)=[X(mx0+b),X(mx1+b),X(mx2+b)….X(mxk+b)] where b=0,1,2,3,… m-1. where m is the number of sub vectors, k=L/m.
For example if m=4 and
X=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15];
then the output should be the following.
[0 4 8 12
1 5 9 13
2 6 10 14
3 7 11 15]

Best Answer

reshape(X,[],4)
See the documentation for reshape for details. The empty square brackets there indicate that MATLAB should infer the length of the first dimension from the size of X (just as you want).