2011-07-30 4 views
1

저는 int의 배열을 가지며 그 값을 그래프로 그립니다. (zedgraphcontrol 사용)C# .net에서 배열의 커브를 부드럽게합니다.

그 곡선에서 나는 C#을 사용하여 로컬 맥시멈을 찾고 싶습니다. 제 아이디어는 잡음을 제거하기 위해 곡선을 부드럽게합니다. 그 장소를 어떻게 찾을 수 있습니까?

답장을 많이 보내 주셔서 감사합니다.

+2

http://zedgraph.sourceforge.net/documentation/default.html입니까? 그것은 선형 회귀인가? 그것은 포물선인가? 지수? 또한, 나는 당신이 외각을 의미하는 소음을 노이즈로 추정합니다. 특이 치에 대한 표준 정의가 없으므로 데이터, 범위 및 계산에 대해 좀 더 자세히 설명해야합니다. 게다가, 당신은 지금까지이 문제를 다룰 때 무엇을 시도 했습니까? – Jodaka

답변

1

답변은 문맥에 따라 다릅니다. 지역 최대 값을 찾아야 만한다면 간격 (하위 배열)을 가지고 반복적 인 간단한 반복을 할 수 있습니다. Math.Max(). 그러나 이것은 당신이 원하는 것이 아닐 수도 있습니다.

마찬가지로 부드럽게하기를 언급 했으므로 로컬 최대 값을 찾는 것과 다릅니다. 당신이 그 지역, 신호 유형, 시간, 빈도, 공간, 단계, 당신의 필요, 목표, 가설 등을 기반으로하는 many techniques이 있습니다.

신호에 대한 몇 가지 탐색 통계로 시작할 수 있습니다 어떤 기술을 적용 할 수 있는지 이해하는 데 도움이됩니다. 이러한 도구는 통계 패키지 (예 : SPSS, Minitab) 및 Matlab에서 사용할 수 있습니다. 신호 플롯을보고 커브 피팅을 시도하고 선형 회귀를 먼저 시도하십시오. 거기에서 당신은 어디로 가야하는지 볼 수 있습니다.

2

내가 그러나 내가 ZedGraph의 곡선을 부드럽게하는 방법에 대한 간단한 예를 보여줍니다, 그의 대답에 점을 Oleksii 주소를 해결하기 위해 시도하지 않습니다 : 영향을 1.0F에 0.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 뭔가를 배우기. –