Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1995
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1995

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

Search the Archive

any better to apply a function...

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg520] any better to apply a function...
  • From: colinr at sue.econ.su.oz.au (Colin Rose)
  • Date: Wed, 8 Mar 95 5:35:02 EET

     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