find values between constants in vector

2 vues (au cours des 30 derniers jours)
Leor Greenberger
Leor Greenberger le 21 Sep 2011
I have a vector freq_n where I want to find the indices corresponding to values between a and b.
freq_in-10*delta_f <= freq_n <= freq_in+10*delta_f
How would I go about doing this? The find() function seems to only allow one relational operator, unless I am doing something wrong? thanks!

Réponse acceptée

Sean de Wolski
Sean de Wolski le 21 Sep 2011
idx = X >= a & X <= b;
where X is your vector, a is the lower bound, b is the upper bound. This will be their logical values. If you want numerical indices:
find(idx)

Plus de réponses (2)

Wayne King
Wayne King le 21 Sep 2011
freq = 0:1:500;
[~,indices] = find(freq>20 & freq < 250);
freq(indices)

Leor Greenberger
Leor Greenberger le 21 Sep 2011
ah. I think I got it:
find(freq_n <= freq_in+10*delta_f & freq_n >= freq_in-10*delta_f)
I was initially using && and that wasn't working.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by