Get the index from the comparison of two different lenght vectors

16 次查看(过去 30 天)
Hi,
I would like to compare two vectors, and get the indexes of the positions where the two vectors are matching. In such a way I could create a sort of lookup table with the correspondences between the vectors indexes. For instance, if I have:
A = [1 2 3 5 6 8 9 7 10] B = [1 5 7 9]
indexes = compare(B,A);
I would like to have as a result: indexes = [1 4 9 8] I would have this way a sort of lookup table keeping track of the correspondences between the two vectors.
If I would then obtain the second element of B then I could just say that is A(4) = 5....or.... B(2) = 4;
how could I do this without looping over the whole vector? (which in my case is very huge....)

采纳的回答

Desiree
Desiree 2011-9-14
You can use function INTERSECT for this:
>> A = [1 2 3 5 6 8 9 7 10] ;B = [1 5 7 9];
>> [c, ia, ib] = intersect(A,B)
c =
1 5 7 9
ia =
1 4 8 7
ib =
1 2 3 4

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by