MathGroup Archive 2010

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

Search the Archive

Re: Combine matrices of equal height

  • To: mathgroup at smc.vnet.net
  • Subject: [mg111048] Re: Combine matrices of equal height
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Sun, 18 Jul 2010 01:04:48 -0400 (EDT)

On 7/17/10 at 8:16 AM, sam.takoy at yahoo.com (Sam Takoy) wrote:

>Given two matrices of equal height, what's the best way to combine
>them. Here's what I did

>TF[m_] := Flatten[Transpose[m]] Combine[m1_, m2_] :=
>Partition[Join[m1 // TF, m2 // TF], Length[m1]] // T

I assume there is a typo here and the last portion of what you
wrote above should be TF not just T.

If so, joining two matrices can be done with ArrayFlatten.
Taking your "equal height" to mean an equal number of rows, then

=46latten@ArrayFlatten@{{m1,m2}}

gives the same result as your code. For example,

In[12]:= a = RandomInteger[1, {5, 2}];
b = RandomInteger[5, {5, 3}];
Combine[a, b] == Flatten@ArrayFlatten@{{a, b}}

Out[14]= True

Note, what I have done with ArrayFlatten requires the two
matrices to have the same number of rows which is not true of
your code. You can relax this requirement by using Riffle which
will not care if the to matrices have the same number of rows.
That is:

In[15]:= Combine[a, b] == Flatten@Riffle[a, b]

Out[15]= True



  • Prev by Date: Re: Avoid the use of certain functions
  • Next by Date: Re: Combine matrices of equal height
  • Previous by thread: Re: Combine matrices of equal height
  • Next by thread: Re: Combine matrices of equal height