find values between constants in vector

1 回表示 (過去 30 日間)
Leor Greenberger
Leor Greenberger 2011 年 9 月 21 日
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!

採用された回答

Sean de Wolski
Sean de Wolski 2011 年 9 月 21 日
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 件)

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

Leor Greenberger
Leor Greenberger 2011 年 9 月 21 日
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.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by