c#.net中数组中的平滑曲线

时间:2011-07-30 07:05:09

标签: c# zedgraph aforge

我有一个int数组,我在图中绘制了这些值。 (使用zedgraphcontrol)

在该曲线中,我想使用C#.net找到局部最大值 我的想法是平滑曲线以消除噪音。 我怎样才能找到那些地方。

非常感谢您的所有回复

2 个答案:

答案 0 :(得分:3)

我不会尝试在他的回答中解决Oleksii地址,但是我将展示如何在ZedGraph中平滑曲线的简单示例:

GraphPane myPane = zedGraphControl1.GraphPane;

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

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

从0.0F到1.0F的值影响平滑量,> 1.0F可能是不合需要的。

平滑的源代码文档:http://zedgraph.sourceforge.net/documentation/html/P_ZedGraph_Line_IsSmooth.htm

Zedgraph参考文献:

答案 1 :(得分:1)

答案取决于具体情况。如果您只需要找到局部最大值,那么您可以只有一个间隔(子数组)并执行简单的迭代Math.Max()。但是,这可能不是你想要的。

正如您还提到的平滑,这与寻找局部最大值不同。你可以使用many techniques,它们基于面积,信号类型,时间,频率,空间,阶段,你的需求,你的目标,你的假设等。

您可以从信号的一些探索性统计数据开始,以帮助您了解可以应用的技术。这些工具可用于统计数据包(例如SPSS,Minitab)和Matlab。看一下信号图,首先尝试曲线拟合和线性回归。从那里你可以看到去哪里。