I have an array,
ref = [1 1 0 0 1],
and 3 more arrays
a{1}=[1 0 0 0 1] a{2}=[1 0 0 0 0]a{3}=[0 0 1 0 1]
I want to produce an array by comparing ref to all others, such that: if an element in position i in ref matches the element in position i in any of the a{} then it is considered a match otherwise not. In case of a match (ref=1, a=1,0,0), we keep the value of ref (ans=1), otherwise (ref=1, a=0,0,0) the value is flipped (ans=0).
So based on this condition, the output for this example will be
ans=[1 0 0 0 1]
It can easily be done using for loops,
for i=1:5 match=0; for j=1:3 if(ref(i) == a{j}(i)) ans(i)=ref(i); match=1; continue; end end if(~match) ans(i)=1-ref(i); match=1; endend
but is there a more efficient way to do this?
Best Answer