Effacer les filtres
Effacer les filtres

2 comparisons in find(...)

2 vues (au cours des 30 derniers jours)
geieraffe
geieraffe le 19 Avr 2012
Hey there, here's my problem:
with
find( 3> ( 2*Sig_log(:,1) + Sig_log(:,2) ) >1)
I try to get the idx, where the first signal is 1 and the second is 0. (bothsignals are logical)
With just one comparison it works:
find( ( 2*Sig_log(:,1) + Sig_log(:,2) ) >1)
this is how i get the idx where both signals are 1.
i know, if-requests i do with && or , but it doesn't work here.
any ideas?

Réponse acceptée

geieraffe
geieraffe le 19 Avr 2012
it works fine with
find( (2*Sig_log(:,1)+Sig_log(:,2)>1) & (2*Sig_log(:,1)+Sig_log(:,2)<3) )
just take & instead of &&
another solution (works only if you have exact logical signals):
find( ( (2*compSig_log(:,1)+compSig_log(:,2) ) == 2) )

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 19 Avr 2012
t = Sig_log(:,1:2)*[2;1];
out = find(t > 1 & t < 3)
  2 commentaires
geieraffe
geieraffe le 19 Avr 2012
close!
but because of my big datasets i dont want to get another variable t.
its some thing like 7000000x1 double ... i had a solution with an extra variable too ...
... but you gave me the right idea!
Walter Roberson
Walter Roberson le 19 Avr 2012
Using the temporary variable will use *much* less memory than your proposed solution.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by