MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

any better to apply a function...


     Richard Chen writes:
>    Suppose I have list of numbers in pairs:  
>         a = {{x1,y1},{x2,y2},...,{xn,yn}}    
>    I would like to apply to the sequence {y1,y2,...,yn} the function
>    f so that a new sequence        
>         b = {{x1,f[y1]},{x2,f[y2]},...,{xn,f[yn]}}
>    is generated.  My current solution is
>
>         b = Transpose[{First /@ a,f[Last /@ a]}]
>
>    However, I suspect there should be a much more simpler way than this.
>    Does any body know a more straight forward way to do this?


How about:

          Apply[{#1, f[#2]}&, a, 1]


>    Also, what if I have a matrix of 3 or more columns and I would apply
>    f to only the second column, say. What is a better way in this case?


The same method works:
          
          Apply[{#1, f[#2], #3}&, a, 1]


For instance:

In[1]:=    a = { {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3}};


In[2]:=    Apply[{#1, f[#2], #3}&, a, 1]

Out[2]=    {{x1, f[y1], z1}, {x2, f[y2], z2}, {x3, f[y3], z3}}



Hope this helps

Colin


Dr Colin Rose
tr(I) - Theoretical Research Institute
______________________________________
colinr at extro.ucc.su.oz.au




  • Prev by Date: Re: any better to apply a function to second column?
  • Next by Date: Pattern Matcher
  • Previous by thread: Extracting terms
  • Next by thread: Pattern Matcher