Ask Your Question

Revision history [back]

It depends on your Sage version (and also octave version actually, see trac ticket 21135). I am able to do in a Sage console

sage: a = [1,2,3,4]
sage: a_octave = octave(a)
sage: norm_octave = a_octave.norm()    #this is calling the function "norm" from octave
sage: norm_octave
 5.47723
sage: type(norm_octave)
<class 'sage.interfaces.octave.OctaveElement'>
sage: my_norm = norm_octave.sage()    # this converts it as a Sage element
sage: type(my_norm)
<type 'sage.rings.real_double.RealDoubleElement'>

It depends on your Sage version (and also octave version actually, see trac ticket 21135). I am able to do in a Sage console

sage: a = [1,2,3,4]
sage: a_octave = octave(a)
sage: norm_octave = a_octave.norm()    #this is calling the function "norm" from octave
sage: norm_octave
 5.47723
sage: type(norm_octave)
<class 'sage.interfaces.octave.OctaveElement'>
sage: my_norm = norm_octave.sage()    # this converts it as a Sage element
sage: type(my_norm)
<type 'sage.rings.real_double.RealDoubleElement'>

Another option is to use the Python module oct2py. If you want to use it from Sage (and not only from Python) you need to do the following

$ sage -pip install oct2py --user

(the argument "--user" here is optional if you have write access to your Sage installation). Once the above step done, you can use oct2py in Sage