MathGroup Archive 2002

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

Search the Archive

Re: making a block diagonal matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37575] Re: making a block diagonal matrix
  • From: "Allan Hayes" <hay at haystack.demon.co.uk>
  • Date: Tue, 5 Nov 2002 05:01:21 -0500 (EST)
  • References: <aq598m$sdj$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

David,

    DiagonalMatrixSq[sms_]:=
      Module[{p=0},
        Join@@(PadRight[#,{Length[#],Plus@@Length/@sms},
              0,{0,(p+=Length[#])-Length[#]}]&/@sms)
        ]

Test:

    sms= {{{a,b},{c,d}},{{e,f,g},{h,i,j},{k,l,m}},{{z}}};

    DiagonalMatrixSq[sms]

       {{a,b,0,0,0,0},
        {c,d,0,0,0,0},
        {0,0,e,f,g,0},
        {0,0,h,i,j, 0},
        {0,0,k,l,m,0},
        {0,0,0,0,0,z}}

--
Allan

---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565


"David E. Burmaster" <deb at alceon.com> wrote in message
news:aq598m$sdj$1 at smc.vnet.net...
> Dear MathGroup
>
> Can anyone please suggest an efficient way to convert a list of square
> matrices (of different dimensions) into a block diagonal matrix?? The
> elements of each matrix are all real numbers
>
> here is an example with a list of two square matrices --
>
> matrix1 = a b
> c d
>
> matrix2 = e f g
> h i j
> k l m
>
>
> output = a b 0 0 0
> c d 0 0 0
> 0 0 e f g
> 0 0 h i j
> 0 0 k l m
>
>
>
> =-=
>
> many thanks
> dave
>
>
>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> David E. Burmaster, Ph.D.
> Alceon Corporation
> POBox 382069                 (new Box number effective 1 Sep 2001)
> Harvard Square Station
> Cambridge, MA 02238-2069     (new ZIP code effective 1 Sep 2001)
>
> Voice 617-864-4300
>
> Web http://www.Alceon.com
> Email deb at Alceon.com
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
>
>




  • Prev by Date: Re: Step by step integration
  • Next by Date: Re: ScatterPlot questions
  • Previous by thread: RE: making a block diagonal matrix
  • Next by thread: Re: making a block diagonal matrix