2010-12-11 25 views
2

J'ai deux tableaux de cellules de chaînes A et B qui contiennent 60 et 400 noms de sujet, respectivement. Tous les sujets du tableau de cellules A sont également dans le tableau de cellules B. Ce que je voudrais faire est de supprimer les sujets énumérés dans le tableau de cellules A du tableau de cellules B pour arriver au tableau de cellules C, qui ne contient que les sujets que je veux travailler avec.MATLAB: comment supprimer des éléments du tableau de cellules A du tableau de cellules B?

Répondre

7

Si vous ne vous souciez pas le résultat étant triés, vous pouvez utiliser la fonction SETDIFF:

C = setdiff(B, A); 

Si vous avez besoin du résultat dans le même ordre que le réseau de cellules d'origine B avec les noms de A supprimé, vous pouvez utiliser la fonction ISMEMBER:

C = B(~ismember(B, A)); 

MISE à JOUR: Dans les nouvelles versions de Matlab, un argument supplémentaire a été ajouté à SETDIFF pour contrôler le tri des éléments de sortie. Pour maintenir la commande d'origine, vous pouvez maintenant faire ceci:

C = setdiff(B, A, 'stable'); 
+0

Merci à l'homme pour l'aide rapide. – Mike

+0

Bonne réponse comme toujours, je ne connaissais pas la fonction setdiff. Mike-comme vous l'aimez clairement, vous pouvez cliquer sur la flèche vers le haut par la réponse, et cliquez sur la case ci-dessous. C'est une façon plus formelle de remercier le répondant. –

Questions connexes