Output of a vector which excludes the entries of the second vector

5 visualizzazioni (ultimi 30 giorni)
Hello,
Problem: Given two distinct integer vectors p and q. I'd like to get a new vector r, that is p excluding the entries of q.
For example,
p = [1 2 3 4 5 6 7 8], q = [2 5 7 9], then r = [1 3 4 6 8].
Hope to have a code in a singer line. Thanks.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 1 Dic 2012
Modificato: Azzi Abdelmalek il 1 Dic 2012
p = [1 2 3 4 5 6 7 8],
q = [2 5 7 9],
out=p(~ismember(p,q))
  3 Commenti

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 1 Dic 2012
r = setdiff(p, q);
  3 Commenti
Walter Roberson
Walter Roberson il 1 Dic 2012
Note that the two answers are slightly different, having to do with the ordering of the outputs if the first vector is not sorted. setdiff() also has a 'stable' option to get the outputs in the original order.

Accedi per commentare.

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by