MathGroup Archive 2009

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

Search the Archive

Mapping to a specific column or row in a matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102985] Mapping to a specific column or row in a matrix
  • From: pfalloon <pfalloon at gmail.com>
  • Date: Thu, 3 Sep 2009 07:10:15 -0400 (EDT)

Hi,
I'm wondering if there is a more simple/elegant way to Map a function
to a specific row or column of a matrix. The best I can come up
requires both Map and MapAt, but it feels like there should be
something more succinct (I suspect I may be overlooking something
obvious).

Example: suppose I want to divide entries in the 3rd column by 10.

(* my clunky solution *)
mat = ConstantArray[1, {10,5}];
res = Map[MapAt[#/10 &, #, 3] &, mat]


Note that the desired output is the entire matrix, so that rules out
something like:

mat[[All,3]]/10


One thing that would seem natural would be to allow "All" as an
element specification in the MapAt function. Thus, what I'm trying to
do would be expressed as:

(* doesn't work, but would be nice *)
MapAt[#/10 &, mat, {All,3}]

and if I wanted to do it to a specific row (say, the 3rd) it would be:

(* doesn't work, but would be nice *)
MapAt[#/10 &, mat, {3, All}]


Any thoughts/suggestions?

Thanks,
Peter.


  • Prev by Date: Re: Bug in Solve?
  • Next by Date: Newbie questions on Font in notebook
  • Previous by thread: Re: how to solve the integer equation Abs[3^x-2^y]=1
  • Next by thread: Re: Mapping to a specific column or row in a matrix