[SciPy-user] LiberMate was Re: Automating Matlab

Eric Schug schugschug@gmail....
Mon Feb 23 22:15:52 CST 2009


Thanks everyone for you comments.
I will try to address them.

> * translation of integers to floats, e.g. for array indices or for arange
>


Rational for cast if int to float.
Matlab always uses float data type, for most expressions

e.g. try
format long e
a=1

This is mostly a problem for division, integer division would be used in some cases 
yielding the wrong results. e.g.
a=1/2
would give 0 and not 0.5 as it does in Matlab. An alternative method would be 
to use 
from __future__ import division

I think the best would be to have this be a command line option, so that various translation rules could be enabled or disabled. 


> * multiplication of scalar with array is translated with dot, eg
>   m:  randn(n,k-1)*10 ->  py: = dot(randn(n, k-1.), 10.)

Matrix multiplication in matlab is * -> dot in Numpy but with scalars should use more readable *




> string array in matlab came out as empty numpy array
> 
> m:
> vnames=['yvar',
>         'iota',
>         'x1  ',
>         'x2  '];
> -> py:
> vnames = array(r_[])




> Importing everything is a source of possible errors (e.g. pylab
> overwrites numpy names)
> 
> from numpy import *
> import scipy
> # if available import pylab (from matlibplot)
> try:
>     from pylab import *
> except ImportError:
>    pass

need to cross reference numpy functions.

I've added the rest to tracker at SourceForge. Although, still learning to use Source forge tools.

Eric.





More information about the SciPy-user mailing list