How to pick the elements in a vector with row coordinates satisfying a criterion determined by another vector?

1 Ansicht (letzte 30 Tage)
Hi, I have a column vector A reporting the first m natural numbers, each of them repeated an arbitrary number of times, e.g.
A=[1;1;2;2;2;3;4;4;4;4];
and a column vector B reporting the first n natural numbers, n>=m, each of them repeated an arbitrary number of times, e.g.
B=[1;2;3;3;3;4;5;5;6;7];
I want to obtain a column vector C reporting the elements of B with row coordinates equal to the row coordinates of each natural number last repetition in A. In the example:
C=[B(2);B(5); B(6); B(10)];

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 28 Nov. 2013
[ii,ii]=unique(A,'last');
C = B(ii);

Weitere Antworten (1)

Roger Stafford
Roger Stafford am 28 Nov. 2013
C = B(find([diff(A)~=0,true]));
Note that for this to work, B should have at least as many elements as A.

Community Treasure Hunt

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

Start Hunting!

Translated by