Difference between two Vectors

16 visualizzazioni (ultimi 30 giorni)
connor
connor il 9 Nov 2013
Commentato: connor il 11 Nov 2013
I have two arrays
A = [-1 1 -2 1 -1 1 -1 -2 -1 1];
B = [-1 1 1 -1 1 -1 -1 1];
and i am wanting to find all of the values in A that do not appear in B.
So the answer would appear that
values = [-2 -2 ] % values that are in A but not B
index = [3 8] % location of 'values' in A
thanks
  1 Commento
connor
connor il 11 Nov 2013
Further to my original question, i now need to find the difference between two vectors of different sizes , but the terms that are new will not be unique ie,
a = [-1 1 2 -2 1 -1 -2 -2 1 -1 -2 2 -1 1]
b = [-1 1 2 -2 1 -1 1 -1 -2 2 -1 1]
hence the difference between these two vectors are the two -2 terms at the centre of a .
The current code will only find new terms that have not appeared before but not the difference in the vectors.
Appreciate any help, thanks.

Accedi per commentare.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 9 Nov 2013
A = [-1 1 -2 1 -1 1 -1 -2 -1 1];
B = [-1 1 1 -1 1 -1 -1 1];
a=setdiff(A,B)
index=find(ismember(A,a))
values=A(index)
  2 Commenti
connor
connor il 9 Nov 2013
Thanks
connor
connor il 11 Nov 2013
Further to my original question, i now need to find the difference between two vectors of different sizes , but the terms that are new will not be unique ie,
a = [-1 1 2 -2 1 -1 -2 -2 1 -1 -2 2 -1 1] b = [-1 1 2 -2 1 -1 1 -1 -2 2 -1 1] hence the difference between these two vectors are the two -2 terms at the centre of a .
The current code will only find new terms that have not appeared before but not the difference in the vectors.
Appreciate any help, thanks.

Accedi per commentare.

Più risposte (1)

Andrei Bobrov
Andrei Bobrov il 9 Nov 2013
ii = ~ismember(A,B)
values = A(ii)
index = find(ii)

Categorie

Scopri di più su Operators and Elementary Operations 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