Re: Replace elements in a matrix
- To: mathgroup at smc.vnet.net
- Subject: [mg116445] Re: Replace elements in a matrix
- From: Adriano Pascoletti <adriano.pascoletti at uniud.it>
- Date: Wed, 16 Feb 2011 04:32:15 -0500 (EST)
A solution based on Transpose and ReplaceAll In[1]:= a = {{0, 1}, {1, 2}}; b = {{1, 3}, {2, 5}}; Transpose[{a, b}, {3, 1, 2}] % /. {{1, x_Integer} :> x, {x_Integer, _Integer} :> x} Out[3]= {{{0, 1}, {1, 3}}, {{1, 2}, {2, 5}}} Out[4]= {{0, 3}, {2, 2}} Adriano Pascoletti 2011/2/15 kiz_0987 <kp.0987 at gmail.com> > 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. > >