toppsky 发表于 2008-2-19 11:26:43

求助(改为这样):求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 编辑 ]

lgh269 发表于 2008-2-19 12:08:17

数学不好,呵呵,其它朋友想吧:)

gzw371 发表于 2008-2-19 13:10:10

按这个意思,N<M时,(An+...+A0)/N;N>M是,(An+...+A0)/M

toppsky 发表于 2008-2-20 11:47:42

感谢gzw371,我说得不清楚:输出也要是个数组(连续3个元素的平均值的数组)

toppsky 发表于 2008-2-20 15:37:56

定期来,继续!!!!!

gzw371 发表于 2008-2-21 08:48:31

你是要,求滑动平均值还是什么,连续三个是具体是怎样的
写个数学表达式,的例子看一下

toppsky 发表于 2008-2-21 11:15:20

例如:M=3时

AVG0=(A0+A1+A2)/3
AVG1=(A3+A1+A2)/3
AVG2=(A3+A4+A2)/3

gzw371 发表于 2008-2-21 13:44:46

ok, 这个答案

toppsky 发表于 2008-2-21 14:20:55

感谢gzw371,可以实现,但还是不能达到我的要求,可能是思路不对,我的源代码(只是M=3的情况),这个字VI前面通过一个循环index出数组中的每一个值,经过这个VI后,转换为3个数的滑动平均值,因为前面的数组index完成后,又有一个新的数组进入,所以,滑动平均值也要连着下一个数组,我想来想去,只能使用寄存器这种方式。
但是问题出现了,如果M=4,5,6,7...,那就要做case m=4,5,6...
很麻烦!

gzw371 发表于 2008-2-21 16:17:35

把它当作子VI用就行了

toppsky 发表于 2008-2-21 16:28:58

原帖由 gzw371 于 2008-2-21 16:17 发表 http://www.cpubbs.com/bbs/images/common/back.gif
把它当作子VI用就行了

这个我知道,我的意思是有没有更好的算法,我的方法是m=3时,要写一个Vi
m=4时,还要写一个Vi
。。。

如果m case很多,这种方法很笨的!

gzw371 发表于 2008-2-21 17:54:16

你的程序是8.5的没法看
只要是数组和M是同时变化的,就没有用CASE的必要

labc 发表于 2008-2-22 00:35:49

n代表什么?
你把数学表达式写清楚些吧.

Labc

乐乐518 发表于 2008-2-22 21:33:29

回复 12# 的帖子

yes,you are right!

toppsky 发表于 2008-2-25 10:18:44

更新了内容!!!!!!
页: [1] 2
查看完整版本: 求助(改为这样):求m个连续元素的滑动平均值,m为变量