MathGroup Archive 2002

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

Search the Archive

RE: RE: making a block diagonal matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37617] RE: [mg37577] RE: [mg37548] making a block diagonal matrix
  • From: "DrBob" <drbob at bigfoot.com>
  • Date: Wed, 6 Nov 2002 06:57:44 -0500 (EST)
  • Reply-to: <drbob at bigfoot.com>
  • Sender: owner-wri-mathgroup at wolfram.com

Better yet:

<< LinearAlgebra`MatrixManipulation`
MatrixForm[blocks = #IdentityMatrix[#] - 2 & /@ {2, 3, 1}]
glue1 = BlockMatrix@{{#1, ZeroMatrix[Length@#1, Length@#2]},
{ZeroMatrix[
      Length@#2, Length@#1], #2}} &;
glueAll = Fold[glue1, First@#, Rest@#] &;

MatrixForm[glueAll@blocks]

The determinant is:

Times@@(Det/@blocks)

The inverse is:

MatrixForm[glueAll[Inverse /@ blocks]]

There's probably no good reason ever to actually form these sparse
matrices, by the way; it's enough that you know what they are.

DrBob

-----Original Message-----
From: DrBob [mailto:drbob at bigfoot.com] 
To: mathgroup at smc.vnet.net
Subject: [mg37617] [mg37577] RE: [mg37548] making a block diagonal matrix

Here's an example.

<< LinearAlgebra`MatrixManipulation`
MatrixForm[blocks = #IdentityMatrix[#] - 2 & /@ {2, 3, 1}]
glue1 = BlockMatrix@{{#1, Table[0, {Length@#1}, {Length@#2}]}, {Table[0,
{
      Length@#2}, {Length@#1}], #2}} &;
MatrixForm[glueAll = Fold[glue1, First@blocks, Rest@blocks]]

DrBob

-----Original Message-----
From: David E. Burmaster [mailto:deb at alceon.com] 
To: mathgroup at smc.vnet.net
Subject: [mg37617] [mg37577] [mg37548] making a block diagonal matrix

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: Number of Rows/Columns of a Matrix
  • Next by Date: Re: DrawGraphics Figure-8 && CPU Strangeness
  • Previous by thread: RE: making a block diagonal matrix
  • Next by thread: Re: Overlay ListDensityPlot and Value