求助(改为这样):求m个连续元素的滑动平均值,m为变量
求助:m个连续元素的滑动平均值,m为变量input: 每一个元素
output:连续m个元素的滑动平均值
(就是index数组一个元素进入,计算出连续m个元素的滑动平均值,这个数组元素index完后,新的数组会进来,所以滑动平均值要连续,比如在第一个数组结束后,他的最后几个(小于m)元素再和新数组的数组的第一个元素继续计算滑动平均值)
我的源代码(只是M=3的情况),这个VI前面通过一个循环index出数组中的每一个值,经过这个VI后,转换为3个数的滑动平均值,因为前面的数组index完成后,又有一个新的数组进入,所以,滑动平均值也要连着下一个数组,我想来想去,只能使用寄存器这种方式。
但是问题出现了,如果M=4,5,6,7...,那就要做case m=4,5,6...
源代码8。5的,所以我打印成了html格式,请大家帮帮忙!
[ 本帖最后由 toppsky 于 2008-2-26 12:59 编辑 ] 数学不好,呵呵,其它朋友想吧:) 按这个意思,N<M时,(An+...+A0)/N;N>M是,(An+...+A0)/M 感谢gzw371,我说得不清楚:输出也要是个数组(连续3个元素的平均值的数组) 定期来,继续!!!!! 你是要,求滑动平均值还是什么,连续三个是具体是怎样的
写个数学表达式,的例子看一下 例如:M=3时
AVG0=(A0+A1+A2)/3
AVG1=(A3+A1+A2)/3
AVG2=(A3+A4+A2)/3 ok, 这个答案 感谢gzw371,可以实现,但还是不能达到我的要求,可能是思路不对,我的源代码(只是M=3的情况),这个字VI前面通过一个循环index出数组中的每一个值,经过这个VI后,转换为3个数的滑动平均值,因为前面的数组index完成后,又有一个新的数组进入,所以,滑动平均值也要连着下一个数组,我想来想去,只能使用寄存器这种方式。
但是问题出现了,如果M=4,5,6,7...,那就要做case m=4,5,6...
很麻烦! 把它当作子VI用就行了 原帖由 gzw371 于 2008-2-21 16:17 发表 http://www.cpubbs.com/bbs/images/common/back.gif
把它当作子VI用就行了
这个我知道,我的意思是有没有更好的算法,我的方法是m=3时,要写一个Vi
m=4时,还要写一个Vi
。。。
如果m case很多,这种方法很笨的! 你的程序是8.5的没法看
只要是数组和M是同时变化的,就没有用CASE的必要 n代表什么?
你把数学表达式写清楚些吧.
Labc
回复 12# 的帖子
yes,you are right! 更新了内容!!!!!!
页:
[1]
2