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 commentaire

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.

Connectez-vous pour commenter.

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 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 commentaires

connor
connor le 9 Nov 2013
Thanks
connor
connor le 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 9 Nov 2013

0 votes

ii = ~ismember(A,B)
values = A(ii)
index = find(ii)

Catégories

En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by