필터 지우기
필터 지우기

Finding the first occurance using interp1

조회 수: 9 (최근 30일)
Jason
Jason 2018년 2월 27일
편집: Matt J 2018년 2월 27일
Hello. I have some data (red curve) and I'm trying to find the X value at which Y = 0.2.
I have used
Y20 = interp1(Y,X,0.2,'linear')
which works well, but finds the last occurrance.
How can I find the first occurrance (i.e. around x=9)
Thanks

채택된 답변

Matt J
Matt J 2018년 2월 27일
편집: Matt J 2018년 2월 27일
Use only the first two data X,Y data points in the interpolation.
  댓글 수: 6
Torsten
Torsten 2018년 2월 27일
It could happen that Y is increasing, couldn't it ?
Matt J
Matt J 2018년 2월 27일
편집: Matt J 2018년 2월 27일
Not according to the posted figure, but even if it could, I think the extension is an exercise I'll leave for the OP.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Sean de Wolski
Sean de Wolski 2018년 2월 27일
편집: Sean de Wolski 2018년 2월 27일
Use cummax and cummin to find the the first set of points that cross 0.2. Then interp just them.
x = 1:10
y = sin(x)
plot(x,y)
yval = 0.2;
idx = find(cummin(y)<0.2 & cummax(y)>0.2, 1, 'first')
interp1(y([idx-1 idx]), x([idx-1, idx]), 0.2)
  댓글 수: 1
Jason
Jason 2018년 2월 27일
Thankyou for your answer. Im sorry I can't accept both. Matt came first.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by