Re: [問題] listplot中想找多個local maxima
看板Mathematica作者chungyuandye (養花種魚數月亮賞星星)時間10年前 (2014/11/07 14:11)推噓1(1推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章