Using Indexing from values in another vector

Hello all,
I have a vector called i, where for example
i = [1 1 2 3 3]';
and I have a vector n, where
n = [2 1 2]'
corresponds to the number of values in i. So n(1) corresponds to the number of 1's in i, n(2) corresponds to the number of 2's in i, etc. I also have another vector j, where j also has values like
j = [1 3 2 2 3].
My question is how could I use the vector n to access the elements in j? Basically I want to use the first two elements of j since n(1) = 2, then I want to access the second element since n(2) = 1 and finally the last two elements of j since n(3) = 2.

 Réponse acceptée

i = [1 1 2 3 3]';
n = [2 1 2]';
j = [1 3 2 2 3];
idx2= cumsum(n);
idx1=[1; idx2(1:end-1)+1];
for k=1:numel(idx1)
s{k}=j(idx1(k):idx2(k))
end

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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