Re: Moving average type process

• To: mathgroup at smc.vnet.net
• Subject: [mg18236] Re: Moving average type process
• From: Hans Staugaard <hans.staugaard at get2net.dk>
• Date: Thu, 24 Jun 1999 14:24:18 -0400
• Organization: get2net Internet Kunde
• References: <7kpbdq\$4at@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Something like this should do it:

In[1]:=
wtlist={w1,w2,w3};
inlist={a,b,c,d,e,f};
In[2]:=
wtlist.#&/@Partition[inlist,Length[wtlist],1]
Out[2]=
{a w1+b w2+c w3,b w1+c w2+d w3,c w1+d w2+e w3,d w1+e w2+f w3}

--Hans

Virgil Stokes wrote:
>
> I wish to perform the following "moving average" type process on
> a list to generate a new list:
>
> Inputs:
>   wtlist = {w1,w2,w3}     -- weight list
>   inlist = {a,b,c,d,e,f}  -- any other list (>= 3 elements)
>
> Output:
>   outlist = {w1*a+w2*b+w3*c, w1*b+w2*c+w3*d, w1*c+w2*d+w3*e, w1*d+w2*e+w3*f}
>
> Note, outlist will always contain 2 less (Length[wtlist]/2) elements
> than in the input list (inlist).
>
> If w1=w2=w3=x, then
> the following works fine:
>
> outlist = x*Drop[Plus@@NestList[RotateRight,inlist,2],2]
>
> This is a weighted (from wtlist) sum over another list of arbitrary
> length (inlist). I would like to get a "fast" function for doing this when
> the weights are not equal.
>
> -- Virgil

```

• Prev by Date: ImageSize: can be chosen only once per session?
• Next by Date: Re: Canceling square roots with Simplify
• Previous by thread: Re: Moving average type process
• Next by thread: RE: Moving average type process