How to split array in n part every m points ?

21 views (last 30 days)
Hi everyone,
This question is very frustrating. 3 months ago, I found, 'by chance', a function that I didn't need, and now I need it and I don't remenber the name...
For approximately 4 hours i searched this function, and it seems I don't have 'luck' anymore
On a matrix of 1*n, this function split this matrix into vectors of p values with a step of r .
For example :
A = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ];
B = function(A,p,r) ; returned B = [ 1 2 3 ; 2 3 4 ; 3 4 5 ; 4 5 6 ; ... ; ... ;17 18 19 ; 18 19 20 ]
assuming p = 3 and r = 1
Does anyone know the name of this function ?
There was no iteration, or loop, it was just a simple function but very powerfull for a specified purpose : - )
Thank you in advance to help me to get my lucky charm back

Accepted Answer

Matt J
Matt J on 15 Mar 2019
Edited: Matt J on 15 Mar 2019
I don't know of any built-in function that will do that, but it is easy to implement:
function B=foo(A,p,r)
N=numel(A);
idx=(0:r:N-p).'+(1:p);
B=A(idx);
end
  3 Comments
Matt J
Matt J on 17 Mar 2019
Edited: Matt J on 18 Mar 2019
You're welcome, but please Accept-click the answer if it addresses your question.
Charles Herman
Charles Herman on 18 Mar 2019
Oupsi : )
Now it's done
Have a nice day

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!