find values between constants in vector

1 visualización (últimos 30 días)
Leor Greenberger
Leor Greenberger el 21 de Sept. de 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!

Respuesta aceptada

Sean de Wolski
Sean de Wolski el 21 de Sept. de 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)

Más respuestas (2)

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

Leor Greenberger
Leor Greenberger el 21 de Sept. de 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.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by