find values between constants in vector

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!

 采纳的回答

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)

更多回答(2 个)

freq = 0:1:500;
[~,indices] = find(freq>20 & freq < 250);
freq(indices)
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.

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by