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>
- Map onto a column