Re: Replacing part of a matrix by another

*To*: mathgroup at smc.vnet.net*Subject*: [mg5621] Re: Replacing part of a matrix by another*From*: killough at convex.com*Date*: Sun, 29 Dec 1996 00:56:24 -0500*Organization*: Convex Technology Center of Hewlett Packard, Richardson, Tx USA*Sender*: owner-wri-mathgroup at wolfram.com

In article <59voui$f82 at dragonfly.wolfram.com>, Lidar (Hamburger) dani <dani at fh.huji.ac.il> wrote: >Given a matrix M and a smaller matrix L, what is an elegant way to replace a >submatrix of M by L, at some specified position {p,q}? > >For example: > >given: >M = Array[m,{5,5}] >L = Array[l,{2,2}] >{p,q}={2,3} > >L should replace {{m[2,3],m[2,4]},{m[3,3],m[3,4]}}. > >Thanks, >Dani > SetAttributes[setsub,HoldFirst] setsub[M_,L_,pos_] := Array[ ( M[[##2]] = L[[Sequence @@ #]] )& [ {##}, Sequence @@ ({##}+pos-1) ] &, Dimensions[L] ] Then setsub[M,L,{p,q}] should produce the desired results. Lee -- --------------------------------------------------------------- You're welcome in advance