Element wise if then in vector
Afficher commentaires plus anciens
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
Réponses (1)
Vamsi
le 26 Nov 2013
0 votes
2 commentaires
Simon
le 26 Nov 2013
That's it!
Andrei Bobrov
le 26 Nov 2013
T = M1 - M2;
S = zeros(numel(M1),1);
l = abs(T) >= Theta;
S(l) = sign(T(l));
Catégories
En savoir plus sur Code Performance dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!