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

 採用された回答

KSSV
KSSV 2017 年 5 月 27 日

1 投票

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 件のコメント

Tim B
Tim B 2017 年 5 月 30 日
編集済み: Tim B 2017 年 5 月 30 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeData Exploration についてさらに検索

質問済み:

2017 年 5 月 26 日

編集済み:

2017 年 5 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by