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

1 view (last 30 days)
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)];

Accepted Answer

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

More Answers (1)

Roger Stafford
Roger Stafford on 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.

Categories

Find more on Elementary Math in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!