## Search all elements from from array A in array B and write it workspace

Asked by Santosh Gnanasekar

### Santosh Gnanasekar (view profile)

on 14 May 2019
Latest activity Answered by Andrei Bobrov

### Andrei Bobrov (view profile)

on 14 May 2019
Hello All,
Iam trying to code to Search all elements from array A in array B and write it workspace
Array A = [0.012 0.014.... 5.04];
Array B = [0.01 0.36 0.125 0.36 .. 10.04];
my approach
for i = 1: length(Array A)
if Array A(i) = [Array B]
Output = Array A(i);
end
i = i+1;
end
<<This is not working>>
Any support would be great.. Thanks

### Adam (view profile)

on 14 May 2019
It would help if you just post actual code. 'Array A' clearly is not a valid variable name.
You would also do well to read the basic Matlab help on for loops
doc for
i = 1:length( A )
i = i + 1;
is not required.
Also
if Array A(i) = [Array B]
is wrong/invalid in every way possible:
• Putting [ ] around a variable is un-necessary
• = is an assignment operator. == is a comparison operator
• A(i) == B would give you an array of results so you wouldn't want to put this in an if statement
• You shouldn't use the equality operator at all on floating point data due to inaccuracies in the way such data is stored. Testing equality within a tolerance is almost always better.
doc ismembertol
will help you with this if you are using R2015a or later.

on 14 May 2019
Edited by Raj

### Raj (view profile)

on 14 May 2019

Your thinking is basically correct.
for i = 1: length(Array A) % Start with first element of A
if Array A(i) = [Array B] % compare each element of A (one at a time) with all elements of B
Output = Array A(i); % if match found then write it as Output in workspace
end
i = i+1; % increment index for A
end
However there are many syntax errors. Use this:
for i=1:numel(A)
for j=1:numel(B)
if A(i)==B(j)
output(i)=A(i);
end
end
end
output=output(output ~= 0)
Recommend going through some basic MATLAB tutorials.