Re: Matrix construction
- To: mathgroup at smc.vnet.net
- Subject: [mg101117] Re: Matrix construction
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Wed, 24 Jun 2009 06:34:33 -0400 (EDT)
On 6/23/09 at 7:03 AM, yshdfeng at gmail.com (Haibo Min) wrote:
>Hi, everyone. I know that matrix can be constructed via Table or
>Array, but I want to construct a matrix from other matrices, how to
>do it? For example, suppose I would like to construct a matrix M
>which is composed of four matrices, A,B,C,D. The element
>corresponding to the first row and the first column is A, the first
>row and second column is B... I used the M={{A,B},{C,D}} and
>M={A,B,C,D}, but both of them didn't work. How? Thanks for advance.
=46or version 6 and later the most direct way to do this would be
to use ArrayFlatten. For example,
In[1]:= a = RandomInteger[1, {2, 2}];
b = RandomInteger[2, {2, 2}];
c = RandomInteger[3, {2, 2}];
d = RandomInteger[4, {2, 2}];
In[5]:= ArrayFlatten@{{a, b}, {c, d}}
Out[5]= {{1, 0, 0, 1}, {0, 1, 2, 0}, {2, 2, 4, 3},
{3, 3, 3, 2}}
With earlier versions of Mathematica the same result can be
obtained using Flatten as follows:
In[6]:= Flatten[{{a, b}, {c, d}}, {{1, 3}, {2, 4}}]
Out[6]= {{1, 0, 0, 1}, {0, 1, 2, 0}, {2, 2, 4, 3},
{3, 3, 3, 2}}