Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Constructing matrix out of submatrices

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113795] Re: Constructing matrix out of submatrices
  • From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
  • Date: Sat, 13 Nov 2010 00:59:04 -0500 (EST)

Hi,

you could use ArrayPad

CreateMatrix[sub_?MatrixQ, pos : {_, _}, finaldim : {_, _}] :=
 ArrayPad[sub, 
  Transpose[{pos - {1, 1}, 
    finaldim - Dimensions[sub] - pos + {1, 1}}]]

CreateMatrix[{{a,b},{c,d}}, {1, 2}, {3, 3}] // MatrixForm

Cheers
Patrick

On Fri, 2010-11-12 at 05:26 -0500, 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
> 



  • Prev by Date: Sort a List, in a List of Lists of Lists
  • Next by Date: Re: Constructing matrix out of submatrices
  • Previous by thread: Re: Constructing matrix out of submatrices
  • Next by thread: Re: Constructing matrix out of submatrices