Matlab : comparaison de vecteurs

Résolu/Fermé
kiki - 4 juil. 2008 à 11:55
 Darkane - 19 juin 2009 à 17:29
Bonjour,

J'ai une question bête.
J'ai deux vecteurs soit V1 = [2 3 4 5 6] et V2 = [2 3 4 6] (toutes les valeurs dans V1 et V2 sont uniques).
Je voudrais trouver les indices du vecteur V1 qui contiennent une valeur contenue dans le vecteur V2. Ici je veux donc le résultat : 1, 2, 3, 5.

J'ai pensé à l'option
cpt = 1;
for i =1:length(V2)
ind(cpt) = find(V1==V2(i));
cpt = cpt+1;
end

Mais je me demande s'il n'y a pas une solution qui évite l'utilisation d'une boucle for (mes calculs sont déjà assez longs).

Merci.

1 réponse

Sacabouffe Messages postés 9418 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 865
6 juil. 2008 à 17:48
Salut
[I J] = find(repmat(V1,size(unique(V2),2),1)==repmat(unique(V2.'),1,size(V1,2)));
indV1=sort(J); clear I J;
A plus
0
Avec intersect ça devrait marcher aussi et plus simplement.
0