[SciPy-user] linalg mat - init from string?

Pearu Peterson pearu at scipy.org
Wed Dec 15 15:15:17 CST 2004



On Wed, 15 Dec 2004, Ron Bondy wrote:

> I'm new to scipy and am trying to use it to do some tests on a 67X67 unsymmetric matrix.  The matrix is a jacobian calculated in another program and I'm looking for a way to write it out as a python script so that I can import the python script and then manually invert the matrix, calc eigenvalues etc.
>
> I'm having trouble finding a format that I can write the matrix out in.
>
>> From the scipy docs this is how to init a mat:
> A = mat('[1 3 5; 2 5 1; 2 3 8]')
>
>
> As a simple example, suppose that this is the python source:
>
> from scipy import *
>
> bstr = '[ 1 3 5; 2 3 1 ; 3.1 5.1 8.0]'
> A = mat(bstr)
>
> when I run this as a python script I get this error:
>
> Traceback (most recent call last):
>  File "bb.py", line 8, in ?
>    A = mat(bstr)
>  File "C:\Python23\Lib\site-packages\scipy_base\ppimport.py", line 115, in __call__
>    return self._ppimport_attr(*args,**kwds)
>  File "C:\Python23\Lib\site-packages\Numeric\Matrix.py", line 69, in __init__
>    data = _convert_from_string(data)
>  File "C:\Python23\Lib\site-packages\Numeric\Matrix.py", line 36, in _convert_from_string
>    newrow.extend(map(_eval,temp))
>  File "C:\Python23\Lib\site-packages\Numeric\Matrix.py", line 24, in _eval
>    return eval(astr.translate(_table,_todelete))
>  File "<string>", line 0
>
>    ^
> SyntaxError: unexpected EOF while parsing
>
> why is the parser seeing an EOF?
>
> If someone can explain to me what the problem here is I would appreciate 
> it.  I was hoping to write out the larger matrix as a string and then 
> construct a mat object from the string.

The problem is that you have one extra space after `[' in bstr.
So, try

    bstr = '[1 3 5; 2 3 1 ; 3.1 5.1 8.0]'
    mat(bstr)

Similar EOF problem will occur when there would be space before `]`.
I'd say its a Numeric bug.

Pearu



More information about the SciPy-user mailing list