求判断曲线趋势的算法

xiaofeng54 2010-04-13 07:52:17
在程序中建有一个变量temp和一个数组dim myarray(0 to 10) as float,在timer下,temp每秒更新一次值,myarray(9)=temp,然后

for i=0 to 8
myarray(i)=myarray(i+1);
next i


这样子数组myarray中就由temp最新的十个值所填充,

现在的问题就是如何才能判断出myarray中的10个值连成的曲线是一个逐渐上升然后下降的波峰,不知道有没有成熟的算法或者好的建议,希望大家帮助我!

例如数据为:2,2,2,3,5,8,9,7,8,6,4,2,1,1,则判断为产生了一个满足条件的曲线。


图示:
如何判断下面链接图中的波峰

http://images.google.com.hk/imglanding?q=C%23%20%E6%9B%B2%E7%BA%BF&imgurl=http://images.cnblogs.com/cnblogs_com/kenblove/Curve4.jpg&imgrefurl=http://www.cnblogs.com/lr21shiji/articles/590972.html&usg=__KPN11pLF38YlPWUfdce-jbofk4Y=&h=500&w=900&sz=35&hl=zh-CN&um=1&itbs=1&tbnid=T60oKSZalQTV2M:&tbnh=81&tbnw=146&prev=/images%3Fq%3DC%2523%2B%25E6%259B%25B2%25E7%25BA%25BF%26um%3D1%26hl%3Dzh-CN%26newwindow%3D1%26safe%3Dstrict%26client%3Daff-avalanche%26sa%3DN%26channel%3Dsearchbox%26tbs%3Disch:1&um=1&newwindow=1&safe=strict&client=aff-avalanche&sa=N&channel=searchbox&tbs=isch:1&start=9#tbnid=T60oKSZalQTV2M&start=13

...全文
195 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaofeng54 的回复:]我只是用以上的数据举个例子,实际操作中波峰不见得是9的。[/Quote]
举例,9 指代最大值。
xiaofeng54 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhao4zhong1 的回复:]
楼主给出的数据严格说9和后面的8为两个波峰
[/Quote]

这其中存在一个滤波的过程,只看大趋势,其中有少数干扰点要滤除。
我补充一下题目吧,常规数据在101-105之间,波动范围在105-150之间,可以忽略的滤波范围在-2~+2之间
赵4老师 2010-04-14
  • 打赏
  • 举报
回复
楼主给出的数据严格说9和后面的8为两个波峰
xiaofeng54 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tiger_zhao 的回复:]
求出最大值 9
确定 9 两边一定范围内的值是逐个递减的
[/Quote]
我只是用以上的数据举个例子,实际操作中波峰不见得是9的。
Tiger_Zhao 2010-04-14
  • 打赏
  • 举报
回复
求出最大值 9
确定 9 两边一定范围内的值是逐个递减的
贝隆 2010-04-13
  • 打赏
  • 举报
回复
这些点是否遵循一定的规律?比如一定的函数关系?这个很关键。
xiaofeng54 2010-04-13
  • 打赏
  • 举报
回复
不是,我就是要判断出图形上出现了一个波峰而已,就是不知道怎样判断啊
熊孩子开学喽 2010-04-13
  • 打赏
  • 举报
回复
楼主的例子上这波型也太大了吧, 要是靠滤波的话,这范围可就大了.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧