How do I find a maximum within a certain range

140 views (last 30 days)
I am currently trying to find the maximum of a signal, but I only want the max between 0.1 and 0.7, can anyone help?
I have been searching for an answer for a while now.
Thanks in advance!

Answers (2)

KSSV
KSSV on 29 Sep 2022
Edited: KSSV on 29 Sep 2022
Let (x,y) be your data arrays.
idx = x>0.1 & x<0.7 ;
iwant = max(x(idx)) ;

Davide Masiello
Davide Masiello on 29 Sep 2022
Take this example dataset
x = linspace(0,10,100);
y = randi(10,1,100).*sin(x);
plot(x,y)
Now assume you want to find the maximum between 6 and 10.
xs = x(x>=6 & x<=10);
ys = y(x>=6 & x<=10);
[~,idx] = max(ys);
hold on
plot(xs(idx),ys(idx),'or')

Community Treasure Hunt

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

Start Hunting!