Return Values that are Between Two Values

6 views (last 30 days)
Tiffany
Tiffany on 1 Nov 2022
Commented: Tiffany on 2 Nov 2022
I have this vector:
w_sorted = [0;0;0;0;1;2;19;60;78];
target = 2;
threshold = 20;
lower_thold = abs(target-threshold);
upper_thold = abs(target+threshold);
series = all(w_sorted >= lower_thold & w_sorted <= upper_thold);
I need series to return all values in the w_sorted vector that are between the lower and upper threshold.
However, I need series to return the actual values, not the logical, which all currently does. I've tried the following which did not work as I needed it to:
series = w_sorted(w_sorted > low_range & w_sorted < up_range);
series = w_sorted(w_sorted(:,1) >= low_range & w_sorted(:,1) <= up_range);
series = w_sorted < low_range | w_sorted > up_range;

Answers (1)

RAGHUNATHRAJU DASHARATHA
RAGHUNATHRAJU DASHARATHA on 1 Nov 2022
As per my understanding you want to get the values between the lower and upper threshold from your vector.
I will try to explain it using your code with minor change.
w_sorted = [0;0;0;0;1;2;19;60;78];
target = 2
target = 2
threshold = 20
threshold = 20
lower_thold = abs(target-threshold)
lower_thold = 18
upper_thold = abs(target+threshold)
upper_thold = 22
series = w_sorted(w_sorted >= lower_thold & w_sorted <= upper_thold)
series = 19
  3 Comments
Torsten
Torsten on 2 Nov 2022
You don't need the number of values. You can simply use
m = mean(series)
Tiffany
Tiffany on 2 Nov 2022
It doesn't have a number of elements to divide it, so it comes back as NaN?

Sign in to comment.

Categories

Find more on Time Series in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!