Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

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

Search the Archive

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?
>



  • Prev by Date: Re: Grid Wont Show Formulas
  • Next by Date: Re: Rationalized Fitting
  • Previous by thread: Re: Map onto a column
  • Next by thread: Re: Map onto a column