Re: Operating on every k-th element of list?
- To: mathgroup at smc.vnet.net
- Subject: [mg37084] Re: Operating on every k-th element of list?
- From: "Borut L" <gollum at email.si>
- Date: Wed, 9 Oct 2002 05:25:29 -0400 (EDT)
- References: <anufl8$ap2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello,
Consider the following approach, whish uses the MapAt command, that is Map
with 'mapping-position' control.
dummyFun={#,trueFun@#}&
list={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}
spec=Partition[Range[3,Length[list],3],1]
MapAt[dummyFun,list,spec]
%//Flatten
Hope that is what you want,
Borut
"AES" <siegman at stanford.edu> wrote in message
news:anufl8$ap2$1 at smc.vnet.net...
| I want to apply a function to every k-th element of a long list and
| add the result to the k+1 element.
|
| [Actually k = 3 and I just want to multiply myList[[k]] by a
| constant (independent of k) and add the result to myList[[k+1]] for
| every value of k that's divisible by 3.]
|
| Is there a way to do this -- or in general to get at every k-th
| element of a list -- that's faster and more elegant than writing a brute
| force Do[] loop or using Mod[] operators, and that will take
| advantage of native List operators, but still not be too recondite?
|
| I've been thinking about multiplying a copy of myList by a "mask list"
| {0,0,1,0,0,1,..} to generate a "masked copy" and approaches like that.
| Better ways???
|