Re: Matrix Operations in Mma
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Matrix Operations in Mma
- From: colinr at sue.econ.su.oz.au (Colin Rose)
- Date: Wed, 29 Sep 93 1:13:12 EET
Martin Rickli writes:
>> How can I assign a matrix to a part of another matrix?
>> eg. Replace the lower right 2x2 matrix in a 3x3 Identity matrix
>> by say {{a,b},{c,d}} to get the result { {1,0,0},
>> {0,a,b},
>> {0,c,d} }
One way of doing this would be to define a function Hi[A, S, {x, y}]
that substitutes the matrix S into matrix A at element {x, y}. For instance:
Hi[A_, S_, {x_, y_}] := (k=A; Do[k=ReplacePart[k, S[[i,j]], {i+x-1,j+y-1}],
{i, Dimensions[S][[1]]}, {j, Dimensions[S][[2]]}]; k)
Then, for your example:
In[]:= M = IdentityMatrix[3];
R = { {a, b}, {c, d} };
Hi[M, R, {2, 2}]
Out[]= 1 0 0
0 a b
0 c d
Here is another example:
In[]:= M = IdentityMatrix[5];
R = { {a, b, c}, {d, e, f} };
Hi[M, R, {3, 2}]
Out[]= 1 0 0 0 0
0 1 0 0 0
0 a b c 0
0 d e f 0
0 0 0 0 1
Regards
Colin
Colin Rose
Dept. of Economics
University of Sydney
colinr at extro.ucc.su.oz.au
*************************