I have a data file with few valleys (minima). is there a way to find all the x coordinates corresponding to each minimum y value?

 채택된 답변

Matt Tearle
Matt Tearle 2011년 2월 15일

4 개 추천

If you want fancy, take Walter's advice and search FEx. If you want quick and dirty:
x = 1:50;
y = sin(5*x);
idx = [false, y(3:end)>y(2:end-1) & y(2:end-1)<y(1:end-2), false];
xmin = x(idx)
plot(x,y,'o-',xmin,y(idx),'rx')

댓글 수: 7

Walter Roberson
Walter Roberson 2011년 2월 15일
The above code unfortunately picks up on every local valley; the contributions in the FEX worry about noise and defining how much of a change there can be before saying that one has entered a new extreme or if two adjacent extreme should be considered part of the same series or not...
Matt Tearle
Matt Tearle 2011년 2월 15일
Right, that's why I said "quick and dirty"
Paulo Silva
Paulo Silva 2011년 2월 15일
Matlabs findpeaks will do the job just fine, the recent matlab version have a better implementation of findpeaks.
Matt Tearle
Matt Tearle 2011년 2월 15일
True, but note: FINDPEAKS is a Signal Processing Toolbox function.
Paulo Silva
Paulo Silva 2011년 2월 15일
Matt your simple detection is very interesting :) I never thought about it that way, it's not perfect but might be very useful, thanks for sharing it.
Matt Tearle
Matt Tearle 2011년 2월 16일
Hah. Actually I just hunt the intartubes looking for places to apply logical indexing! ;)
Paulo Silva
Paulo Silva 2011년 2월 16일
Here's my 1 vote :)

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

추가 답변 (3개)

Walter Roberson
Walter Roberson 2011년 2월 15일

0 개 추천

There is are a fair number of postings, and several Matlab File Exchange contributions, for finding peaks, which you could either modify or apply to the negative of your data.
Andrew Newell
Andrew Newell 2011년 2월 15일

0 개 추천

There is also the Optimization Toolbox.
Graig
Graig 2011년 2월 15일

0 개 추천

Thanks All. For me actually the 'quick and dirty' way works well, as the data are very smooth (not noisy). Seemed to me, this is what the black box 'findpeaks' contains in a better way.

댓글 수: 1

Matt Tearle
Matt Tearle 2011년 2월 16일
To help others who might have the same question, it would be great if you could vote for and/or accept answers that you think should be given prominence. Thanks.

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

카테고리

질문:

2011년 2월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by