Ask Your Question

Pass arguments to an octave call

asked 2016-07-29 07:09:33 -0500

Marco Caliari gravatar image

Hi, given, say, a = [1,2,3,4], is it possible to pass this vector to an octave call, like octave('a+1')? Of course, this last does not work.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2016-07-30 19:29:59 -0500

updated 2016-07-30 21:07:58 -0500

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
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

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-07-29 07:09:33 -0500

Seen: 59 times

Last updated: Jul 30 '16