Finding minima

1 次查看(过去 30 天)
Graig
Graig 2011-2-15
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
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 个评论
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
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
There is also the Optimization Toolbox.

Graig
Graig 2011-2-15
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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by