# Comparing all the elements of an array with all the elements of another array

3 views (last 30 days)
CV on 20 Oct 2020
Edited: CV on 21 Oct 2020
Hello ,
I want to compare Compare all the elements of an array with all the elements of another array and save the result to a now array.
i have an array A=[100 110 120 130.....600]
which i want to compare with B = [100 103 105 120 123 128 130 200 205 207 300 200 100 ]
if the value of B mateches with any element of array the value of A sholud be stored in new array C and the value should not repeal(like if there is already 100 in the array C then i should not write it again. )
the output should look like this
C = [100 120 130 200 300]

Bruno Luong on 20 Oct 2020
Edited: Bruno Luong on 20 Oct 2020
This returns the elements in order as in B, from left to right
A = 100:10:600
B = [100 103 105 120 123 128 130 200 205 207 300 200 100 ]
C = unique(B(ismember(B,A)),'stable')

Ameer Hamza on 20 Oct 2020
Try this
C = A(ismember(A,B))

CV on 21 Oct 2020
thanks for the solution.
if i want to set the limit lets say if the value of element of B is less or grater than the element of the A minus 2 or plus 2 then also it should return the element of A.
example of there is 102, 198 and 99 in B then also C should be 100 and 200.
Bruno Luong on 21 Oct 2020
Change statement
ismember(...)
to
ismembertol(..., 2, 'DataScale', 1)
CV on 21 Oct 2020
i tried the statement of B = [102 150 175 200 205 210 300 99]; an it returns C = [102 150 200 210 300 99] but i should return C [100 150 200 210 300]
but after executing
C = A(ismembertol(A,B,2, 'DataScale', 1))