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: [mg111043] Re: Combine matrices of equal height
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Sun, 18 Jul 2010 01:03:53 -0400 (EDT)

Hi,

you did not provide a test example and your code does not seem to work for me so
I can only guess what you meant by combining. The following function will
combine together any number of matrices provided they  all have the same length (number of rows):

combine[x___?MatrixQ /; Equal @@ Map[Length, {x}]]
:= Flatten[Transpose[{x}], {{1}, {2, 3}}];

For example:

In[19]:= tst1 = Partition[Range[12], 3]

Out[19]= {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}}

In[20]:= tst2 = Partition[Range[13, 24], 3]

Out[20]= {{13, 14, 15}, {16, 17, 18}, {19, 20, 21}, {22, 23, 24}}

In[21]:= combine[tst1, tst2]

Out[21]= {{1, 2, 3, 13, 14, 15}, {4, 5, 6, 16, 17, 18}, {7, 8, 9, 19,
  20, 21}, {10, 11, 12, 22, 23, 24}}

Hope this helps.

Regards,
Leonid


On Sat, Jul 17, 2010 at 4:16 PM, Sam Takoy <sam.takoy at yahoo.com> wrote:

> Hi,
>
> 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
>
>
> Surely there's a better way of doing it.
>
> Thanks!
>
>


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