That will be really easy to implement, I'll do it right now.

- Robert

On Jan 8, 2008, at 11:25 PM, Mike Hansen wrote:

> It was my impression that he didn't want a matrix with matrix entries,
> but instead wanted the matrix whose entries were given by the entries
> of the submatrices.
>
> --Mike
>
> On Jan 8, 2008 11:12 PM, William Stein <[EMAIL PROTECTED]> wrote:
>>
>> On Jan 8, 2008 11:05 PM, [EMAIL PROTECTED]  
>> <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>>
>>> On Jan 9, 7:43 am, "William Stein" <[EMAIL PROTECTED]> wrote:
>>>
>>>> On Jan 8, 2008 4:27 AM, vgermrk <[EMAIL PROTECTED]> wrote:
>>>>
>>>>
>>>>
>>>>> Is there a way to construct block matrices in SAGE?
>>>>> Not just the "block_sum", "augment" and "stack" functions.
>>>>
>>>>> As an example, let A, B, C, D be matrices and i want to  
>>>>> construct a
>>>>> matrix like E=[[A,B],[C,D]]
>>>>
>>>>> Such a feature would be very nice.
>>>>
>>>> Sage's MatrixSpace and matrix don't have support for this.
>>>> numpy (which you get via "import numpy") might have support
>>>> for numerical matrices like this.
>>>
>>> CVXOPT also has support for this:
>>> http://abel.ee.ucla.edu/cvxopt/examples/short-examples/creating- 
>>> matrices/
>>
>> And, just to be clear, CVXOPT is standard in Sage.
>>
>> There are a number of caveats though.  Currently you really have  
>> to switch
>> to python mode to create a cvxopt matrix in Sage, probably because of
>> preparser issues (see below).  Also, more importantly, it looks to me
>> like making a matrix from matrices in CVXOPT does *not* make a matrix
>> with matrix entries, but instead makes a single matrix -- see below.
>>
>>
>> {{{id=0|
>> %python
>>
>> from cvxopt.base import matrix
>> A = matrix([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], (2,3))
>> print A
>> ///
>>    1.0000e+00   3.0000e+00   5.0000e+00
>>    2.0000e+00   4.0000e+00   6.0000e+00
>> }}}
>>
>> {{{id=1|
>> %python
>>
>> B = matrix([ [1.0, 2.0], [3.0, 4.0] ])
>> print B
>> ///
>>    1.0000e+00   3.0000e+00
>>    2.0000e+00   4.0000e+00
>> }}}
>>
>> {{{id=2|
>> %python
>>
>> a = matrix([ [A] ,[B] ])
>> }}}
>>
>> {{{id=4|
>> print a
>> ///
>>    1.0000e+00   3.0000e+00   5.0000e+00   1.0000e+00   3.0000e+00
>>    2.0000e+00   4.0000e+00   6.0000e+00   2.0000e+00   4.0000e+00
>>
>> }}}
>>
>>>
>>
>
> 

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to