2011-07-30 7 views
1

私はintの配列を持っており、その値をグラフにプロットします。 (zedgraphcontrolを使用して)c#.netの配列のカーブをスムージングする

そのカーブでは、C#.netを使用してローカルマキシマを見つけたいと考えています。 私の考えはノイズを除去するためにカーブを滑らかにしています。 その場所を見つける方法を教えてください。あなたの回答のすべて

+2

まあ、それはモデルの種類であるの?平滑化する

ソースコードのドキュメントそれは線形回帰ですか?それは放物線ですか?指数関数?また、私はノイズによって、外れ値を意味するノイズを意味すると仮定します。アウトライヤーの標準定義はありませんので、データ、その範囲、および計算のコンテキストをもう少し分けてください。さらに、あなたはこれまでこの問題に取り組んできましたか? – Jodaka

答えて

1

答えを

多くのおかげで、文脈に依存します。極大値を求める必要がある場合は、間隔(サブアレイ)を持つだけで、簡単な反復を行うことができますMath.Max()。しかし、これはあなたが望むものではないかもしれません。

スムージングについても言及しましたが、これはローカル最大値を見つけることとは異なります。あなたはエリア、信号のタイプ、時間、周波数、空間、位相、ニーズ、目標、仮説などに基づいてそれに使用できるmany techniquesがあります。

信号に関するいくつかの探索的統計どのテクニックを適用できるかを理解するのに役立ちます。このようなツールは、統計パッケージ(SPSS、Minitabなど)とMatlabで利用できます。信号プロットを見て、カーブフィッティングを試して、おそらく線形回帰を試してみてください。そこからどこに行くのが見えますか?

2

私はポイントに彼の答えでOleksiiアドレスに対処しようとしません、しかし私はZedGraphの曲線を滑らかにする方法の簡単な例を示しますが:0.0Fから1.0Fに

GraphPane myPane = zedGraphControl1.GraphPane; 

LineItem myLine = myPane.CurveList.AddCurve("Data", myPointPairList, Color.Blue); 

myLine.Line.IsSmooth = true; 
myLine.Line.SmoothTension = 0.1F; 

値が影響します平滑化量> 1.0Fが望ましくない可能性が高い。 http://zedgraph.sourceforge.net/documentation/html/P_ZedGraph_Line_IsSmooth.htm

Zedgraph参照:

+0

これはノイズを除去しません。それは何かをダウンサンプリングしないので、悪化させます。何かあれば、ポイントの量が増えます。 しかし、これはまだクールな機能でした。おそらくダウンサンプリング後にこれを適用すると機能します。 +1何かを学ぶために。 –