how can partition a vector into smaller sub sequences

Hi,
how can partition a vector into smaller sequences: for example, let A is a vector of 179901, N is another vector consists of 204 elements. I want to partition A into several sub sequences according to values of vector N such that
seq1=A(1:N(1))
seq2=A(1+N(1):N(1)+N(2))
seq3=A(1+N(1)+N(2):N(1)+N(2)+N(3))
and so on for other sequences
how can do this, I use MatlabR2017a. Thanks in advance

 Réponse acceptée

Stephen23
Stephen23 le 7 Avr 2021
Modifié(e) : Stephen23 le 7 Avr 2021
A = 1:19;
N = [3,5,7];
S = mat2cell(A(1:sum(N)),1,N)
S = 1×3 cell array
{[1 2 3]} {[4 5 6 7 8]} {[9 10 11 12 13 14 15]}
Or
V = cumsum([0,N]);
F = @(b,e)A(1+b:e);
S = arrayfun(F,V(1:end-1),V(2:end),'uni',0)
S = 1×3 cell array
{[1 2 3]} {[4 5 6 7 8]} {[9 10 11 12 13 14 15]}

Plus de réponses (0)

Catégories

En savoir plus sur Elementary Math dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by