MathGroup Archive 2012

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

Search the Archive

Re: Map onto a column


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