Re: Constructing matrix out of submatrices
- To: mathgroup at smc.vnet.net
- Subject: [mg113792] Re: Constructing matrix out of submatrices
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Sat, 13 Nov 2010 00:58:30 -0500 (EST)
On 11/12/2010 4:26 AM, Sebastian Schmitt wrote:
> Hi!
>
> I would like to construct a matrix out of submatrices. I guess this is
> straight forward but somehow I couldn't find the correct way in the
> documentation. The example that follows is of course simplified. Please
> don't take shortcuts.
>
> I start with a zero matrix and a submatrix:
>
> matrix = ConstantArray[0, {3, 3}]
> submatrix = {{a, b}, {c, d}}
>
> I want to specificy the upper-left corner in the matrix where the
> submatrix should be placed. If the position is {1,1} the result should be:
>
> result = {{a, b, 0}, {c, d, 0}, {0, 0, 0}}
>
> If it is {1,2}:
>
> result = {{0, a, b}, {0, c, d}, {0, 0, 0}}
>
> etc.
>
> ReplacePart together with ArrayFlatten comes close, but the submatrix
> does not "override" zeros:
>
> ReplacePart[matrix, {1, 1} -> submatrix] // ArrayFlatten
>
> {{a, b, 0, 0}, {c, d, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}
>
> What are possible solutions?
>
> Thanks,
>
> Sebastian
>
>
For example, you could do
matrix[[1;;2, 2;;3]] = submatrix;
to put the submatrix at position {1,2}.
Carl Woll
Wolfram Research