Posez votre question Signaler

Matlab : comparaison de vecteurs [Résolu]

kiki - Dernière réponse le 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.
Lire la suite 

Matlab : comparaison de vecteurs »

2 réponses
Réponse
+0
moins plus
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
Darkane - 19 juin 2009 à 17:29
Avec intersect ça devrait marcher aussi et plus simplement.
Ajouter un commentaire
Ce document intitulé « Matlab : comparaison de vecteurs » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?