MathGroup Archive 2011

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

Search the Archive

Re: Replace elements in a matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116473] Re: Replace elements in a matrix
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Wed, 16 Feb 2011 04:37:17 -0500 (EST)

a = {{0, 1}, {1, 2}};
b = {{1, 3}, {2, 5}};

ReplacePart[a, Thread[Position[a, 1] -> Flatten[Pick[b, a, 1]]]]

{{0, 3}, {2, 2}}


Bob Hanlon

---- kiz_0987 <kp.0987 at gmail.com> wrote: 

=============
I'm new to Mathematica and have a question regarding matrices. I was
sure that this problem must have been answered in the past, but could
not find a solution.

I want to replace some elements in a matrix (based on value) with
elements from another matrix at the same position. Eg:
a = {{0, 1}, {1, 2}};
b = {{1, 3}, {2, 5}};

I want to replace the elements in "a" which are equal to 1 (say) with
the same position elements in b to give:
c = {{0, 3}, {2, 2}};

How can I do this? I started with using Position and ReplacePart but
could not figure out how to get it to work in this case (other cases
are documented, such as replacing with a single value).

Any help appreciated. Thanks.




  • Prev by Date: Re: Another point about Mathematica 8.0
  • Next by Date: DatabaseLink and 64bit MSAccess ODBC driver woes
  • Previous by thread: Re: Replace elements in a matrix
  • Next by thread: Re: Replace elements in a matrix