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

1 次查看(过去 30 天)
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)];

采纳的回答

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

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Elementary Math 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by