find values between constants in vector

1 view (last 30 days)
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!

Accepted Answer

Sean de Wolski
Sean de Wolski on 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)

More Answers (2)

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

Leor Greenberger
Leor Greenberger on 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.

Tags

Community Treasure Hunt

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

Start Hunting!