This isn't a solution for you Comer unless you want to play with the code, but the BlockMatrix class is almost able to do this. To get the code below to work I had to make a slight (one line) alteration to the Matrix class.
BlockMatrix(Matrix([[eye(3), eye(3)],[eye(3), eye(3)]])) ⎡⎡1 0 0⎤ ⎡1 0 0⎤⎤ ⎢⎢ ⎥ ⎢ ⎥⎥ ⎢⎢0 1 0⎥ ⎢0 1 0⎥⎥ ⎢⎢ ⎥ ⎢ ⎥⎥ ⎢⎣0 0 1⎦ ⎣0 0 1⎦⎥ ⎢ ⎥ ⎢⎡1 0 0⎤ ⎡1 0 0⎤⎥ ⎢⎢ ⎥ ⎢ ⎥⎥ ⎢⎢0 1 0⎥ ⎢0 1 0⎥⎥ ⎢⎢ ⎥ ⎢ ⎥⎥ ⎣⎣0 0 1⎦ ⎣0 0 1⎦⎦ Anyway, it'd be nice if all the matrix types could work together. The biggest impediment to this is the need for an explicit Matrix type which is also Basic. On Jan 20, 5:48 pm, Aaron Meurer <asmeu...@gmail.com> wrote: > The best way to do this is to use row_join and col_join: > > In [53]: a = Matrix([[1, 2], [3, 4]]) > > In [54]: b = Matrix([[5, 6], [7, 8]]) > > In [55]: a.row_join(b) > ⎡1 2 5 6⎤ > ⎢ ⎥ > ⎣3 4 7 8⎦ > > In [56]: a.col_join(b) > ⎡1 2⎤ > ⎢ ⎥ > ⎢3 4⎥ > ⎢ ⎥ > ⎢5 6⎥ > ⎢ ⎥ > ⎣7 8⎦ > > There is an open issue that would add a better interface for this > (http://code.google.com/p/sympy/issues/detail?id=2221), but it remains > to be fixed. You're welcome to give it a shot! Ideally, you should be > able to build a Matrix from block elements just as easily as you can > from atomic elements. > > Aaron Meurer > > > > > > > > On Fri, Jan 20, 2012 at 3:59 PM, Comer Duncan <comer.dun...@gmail.com> wrote: > > I have some 3x3 matrices, to be exact there are four of them. I want > > to form a 6 x 6 matrix from a two by two block of the four. > > Specifically here they are: > > >>>> FEx > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, 0] > >>>> FBx > > [0, 0, 0] > > [0, 0, -1] > > [0, 1, 0] > >>>> GEx > > [0, 0, 0] > > [0, 0, 1] > > [0, -1, 0] > >>>> GBx > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, 0] > > > The block matrix I want can be written > > (FEx FBx) > > (GEx GBx) > > > If the above formatted ok you should see what I want. > > > However, the following attempt: > > > Matrix(((Fex,FBx),(GEx,GBx))) > > > produces > > Matrix((FEx,FBx),(GEx,GBx)) > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > File > > "/usr/local/lib/python2.6/dist-packages/sympy-0.7.1-py2.6.egg/sympy/matrice > > s/matrices.py", > > line 158, in __init__ > > raise TypeError("Data type not understood") > > TypeError: Data type not understood > > > When I enter Matrix((FEx,FBx,GEx,GBx)) I get: > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, -1] > > [0, 1, 0] > > [0, 0, 0] > > [0, 0, 1] > > [0, -1, 0] > > [0, 0, 0] > > [0, 0, 0] > > [0, 0, 0] > > > which is a 12 x 3 matrix. > > So my question is how to create a 6 x 6 matrix in the form indicated above? > > > Thanks for suggestions. > > > Comer > > > -- > > You received this message because you are subscribed to the Google Groups > > "sympy" group. > > To post to this group, send email to sympy@googlegroups.com. > > To unsubscribe from this group, send email to > > sympy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sympy?hl=en. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.