Get the index from the comparison of two different lenght vectors

12 vues (au cours des 30 derniers jours)
Giovanni
Giovanni le 14 Sep 2011
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....)
  1 commentaire
Giovanni
Giovanni le 14 Sep 2011
Errata corridge: I meant A(4) == B(2) = 5, and B(2) == A(4) = 5

Connectez-vous pour commenter.

Réponse acceptée

Desiree
Desiree le 14 Sep 2011
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
  1 commentaire
Giovanni
Giovanni le 14 Sep 2011
Greattttt! it´s exactly what I was looking for :)
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by