Re: Apply function to parts of a list
- To: mathgroup at smc.vnet.net
- Subject: [mg86371] Re: Apply function to parts of a list
- From: Bill Rowe <readnewsciv at sbcglobal.net>
- Date: Sun, 9 Mar 2008 05:06:34 -0500 (EST)
On 3/8/08 at 5:45 AM, guerom00 at gmail.com (guerom00) wrote: >More generally now : Again I have a list of list but with more >"dimensions" Something like that : >data={{x1,y1,z1,f1,g1,h1},{x2,y2,z2,f2,g2,h2},{x3,y3,z3,f3,g3,h3},.. >. {xn,yn,zn,fn,gn,hn}} >And let's say I wanna, for the sake of the example, add 10 to all >the y's i.e. I want >{{x1,y1+10,z1,f1,g1,h1},{x2,y2+10,z2,f2,g2,h2},{x3,y3+10,z3,f3,g3,h3 >},... {xn,yn+10,zn,fn,gn,hn}} >According to all your suggestions, I could do >{#1,#2+10,#3,#4,#5,#6}& @@@ data >Right ? Isn't there another simpler way (imagine instead of 6 >elements (x,y,z,f,g,h), I have 100 !) A simple way to do this would be to use pattern matching. For example, In[32]:= data = RandomReal[1, {5, 5}]; In[33]:= data /. {a_, b_Real, c__} -> {a, b + 10, c} Out[33]= {{0.976633, 10.5061, 0.372096, 0.461543, 0.56471}, {0.248924, 10.9755, 0.94797, 0.56371, 0.826699}, {0.989176, 10.0068, 0.813585, 0.0352947, 0.429819}, {0.802074, 10.7574, 0.0873589, 0.544472, 0.467378}, {0.721198, 10.8001, 0.471152, 0.388743, 0.423209}} -- To reply via email subtract one hundred and four