Re: [問題] 求一組已知序列的local minimum已回收

看板MATLAB作者 (我...)時間17年前 (2009/01/14 08:10), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/3 (看更多)
function maxima = findmaxima(x) %FINDMAXIMA Find location of local maxima % From David Sampson % See also FINDMINIMA % Unwrap to vector x = x(:); % Identify whether signal is rising or falling upordown = sign(diff(x)); % Find points where signal is rising before, falling after maxflags = [upordown(1)<0; diff(upordown)<0; upordown(end)>0]; maxima = find(maxflags); 要寫HHT嘛 ※ 引述《LightTemplar (明光聖堂)》之銘言: : 我有個函式y=f(x) ,是連續的,但可能每次模擬結果都不同 : 今令 x =[-1:0.001:1] : 企圖淬取出該 x 範圍內的 y 值 : 因此目前 y 是1001點的vector : 經由人工觀察法得知 y 總是會有多個區域極小值 : 問題是 : 我要如何在不觀察 y 的情況下, 從 y 這個vector 知道那些區域極小值在哪?? : 是否有函式可用?? : ps. 我試過fminbnd, 可以直接從 @f(x) 下手, 但是他只能找到一個區域極小值 : 而不能列出所有區域極小值, 若分段使用fminbnd得到多個該段的極小值, : 也不能確保這些極小值之所在一定是凹點, 換句話說 所有斜率為0的點才是我要的 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.63.252

01/14 08:37, , 1F
丟入的序列改成-x就好
01/14 08:37, 1F

01/14 20:10, , 2F
0.0 有diff這玩意 我想想看
01/14 20:10, 2F
文章代碼(AID): #19RIrmsQ (MATLAB)
文章代碼(AID): #19RIrmsQ (MATLAB)