Re: [問題] listplot中想找多個local maxima

看板Mathematica作者 (養花種魚數月亮賞星星)時間10年前 (2014/11/07 14:11), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《abcd28s (乖小孩)》之銘言: : 魯蛇小弟我想請問一個卡了很久的問題 : 大致上就是我用lostlogplot畫了我的一個table : 然後想要在這張圖片裡面找很多個local maxima : 最好不只找到還可以連線並找到fit的函數XD : 以下是我的程式碼 : Ta0 = Table[{k, n}, {k, ki, kf, dk}]; : 以上是我建立的table : lllp0 = ListLogPlot[Ta0, PlotStyle -> Red] : 然後我將我的table用listlogplot做圖如下 : http://ppt.cc/M6W9 : 然後現在我想要找每個凸凸的local maxima : 想要找到每個peak的座標 : 當然能夠有可以fitting的函數更好 : 試過了一些FindMaximum,Fit,Findfit : 似乎有找到一些像是FindPeaks的指令(網路上) : 但是我的是Mathematica7似乎沒有這個指令QQ : 請教大大們惹 (* test data *) randomwalk=MapIndexed[{#2[[1]],#1+50}&, Accumulate@RandomChoice[{-1,1},100]]; data=randomwalk; ListLinePlot[data,Joined->True,AspectRatio->0.25,ImageSize->750] (* local maximum *) hpeaks[data_]:=Select[Split[data,#1[[2]]<=#2[[2]]&],Length[#]>1&][[All,-1]]; (* local minimum *) lpeaks[data_]:=Select[Split[data,#1[[2]]>#2[[2]]&],Length[#]>1&][[All,-1]]; Show[ListLinePlot[data,Joined->True,AspectRatio->0.25,ImageSize->750, Epilog->{Red,Point@hpeaks[data],Green,Point@lpeaks[data]}], (* data fitting *) Plot[Interpolation[data][x], {x,Min@data[[All,1]],Max@data[[All,1]]},PlotStyle->Pink]] -- 養花種魚數月亮賞星星 http://chungyuandye.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.226.220 ※ 文章網址: http://www.ptt.cc/bbs/Mathematica/M.1415340681.A.650.html

11/09 16:53, , 1F
感謝~~我研究了一個下午大概搞定了!!非常感謝喔~~
11/09 16:53, 1F
文章代碼(AID): #1KN6A9PG (Mathematica)
討論串 (同標題文章)
文章代碼(AID): #1KN6A9PG (Mathematica)