Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Apply a function to parts of a list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110304] Re: Apply a function to parts of a list
  • From: "David Park" <djmpark at comcast.net>
  • Date: Sun, 13 Jun 2010 04:07:51 -0400 (EDT)

Here is one method:

mat = Transpose[{{a, b, c, d}, {5, 6, 7, 8}}] 
{{a, 5}, {b, 6}, {c, 7}, {d, 8}} 

MapAt[#/2 &, mat, Table[{i, 2}, {i, 4}]] 
{{a, 5/2}, {b, 3}, {c, 7/2}, {d, 4}} 


David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/  


From: Rui [mailto:rui.rojo at gmail.com] 

I have always done very ugly code when trying to do something
seemingly simple and basic such as applying a function to subparts of a list.
Simple example, I want to divide by 2 all the second elements of a list
{{a, 5}, {b, 6}, ...}   -->  {{a, 5/2}, ...}

My ideas:
Transpose -> MapAt/Map -> Transpose
Build the sublist with Part and then rebuild it
Use Map and a function like #[[All, 2]] and then rebuild it.

I don't like any solution. I wanted to know if there's anything simple
that I'm overseing

Thanks guys




  • Prev by Date: Re: Apply a function to parts of a list
  • Next by Date: Re: Automatic update of variables
  • Previous by thread: Re: Apply a function to parts of a list
  • Next by thread: Re: Apply a function to parts of a list