Element wise if then in vector
Show older comments
Hi,
I have searched for this but found no answer. I have two arrays M1 and M2 , each with million+ elements.
I want to implement this logic and create a new vector S from each element of M1 and M2
S (i) = 0 if abs(M1(i)-M2(i))< Theta S(i) = sign(M1(i)-M2(i)) otherwise
For loops take forever on this. Any solution that makes it more vector operations would be great.
Vamsi
Answers (1)
Vamsi
on 26 Nov 2013
0 votes
2 Comments
Simon
on 26 Nov 2013
That's it!
Andrei Bobrov
on 26 Nov 2013
T = M1 - M2;
S = zeros(numel(M1),1);
l = abs(T) >= Theta;
S(l) = sign(T(l));
Categories
Find more on Code Performance 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!