Difference between two Vectors

91 views (last 30 days)
connor
connor on 9 Nov 2013
Commented: connor on 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 Comment
connor
connor on 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.

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 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 Comments
connor
connor on 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.

Sign in to comment.

More Answers (1)

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

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!