Re: Map onto a column

*To*: mathgroup at smc.vnet.net*Subject*: [mg125462] Re: Map onto a column*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Wed, 14 Mar 2012 00:44:36 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201203130802.DAA12753@smc.vnet.net>

a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; col = 2; With just MapAt: MapAt[f, a, Thread[{Range[Length[a]], col}]] {{1, f[2], 3}, {4, f[5], 6}, {7, f[8], 9}} However, the abbreviated form of your original approach is much cleaner MapAt[f, #, col] & /@ a {{1, f[2], 3}, {4, f[5], 6}, {7, f[8], 9}} Bob Hanlon On Tue, Mar 13, 2012 at 4:02 AM, Sly Pandemia <slypandemia at gmail.com> wrote: > Is there a neat way to map a function onto a specific column in an > array? > > For example if I have > > a = {{1,2,3},{4,5,6},{7,8,9}} > > and I want to map f onto the second element in each row. I would > normally use > > b = Map[MapAt[f,#,2]&,a] > > but this seems a bit awkward. I would expect to be able to use > > b = MapAt[f,a,{All,2}] > > but this appears to be illegal syntax. > > Is there any way to do what I want with a single Map/MapAt function? >

**References**:**Map onto a column***From:*Sly Pandemia <slypandemia@gmail.com>