How to determine max peak using ginput

Basically I'm trying to find max/min values for a range of a graph using ginput to select the start and end of this range. I have many different graphs I want to use this for but for simplicity I'm trying to first do it on a basic sin function and can't seem to figure it out. As of now I have:
t = linspace(0,2*pi)';
y = sin(t);
plot(t,y)
[time,~] = ginput(2)
%Selecting two random points gives the output
time =
0.3605
2.5930
Now how do I go about finding the max value of y within this chosen range of 0.3605<t<2.5930?
I know the answer will be 1 (sin function) but I'm trying to understand the concepts before applying it to the more complicated graphs I have

 Réponse acceptée

KSSV
KSSV le 27 Mai 2017
clc ; clear all ;
t = linspace(0,2*pi)';
y = sin(t);
plot(t,y)
[time,~] = ginput(2) ;
%%Get data between your time
N = 200 ;
ti = linspace(time(1),time(2)) ;
yi = interp1(t,y,ti) ;
%%GEt maximum
[val,idx] = max(yi) ;
fprintf('maximum value sint he range %f and %f is %f:\n',time(1),time(2),val)

1 commentaire

Tim B
Tim B le 30 Mai 2017
Modifié(e) : Tim B le 30 Mai 2017
Thanks! One more question: how would I go about finding the time value at the peak?
Also, 'N = 200' seems to be unused in your script

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Exploration dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by