Eric S Fraga <ucec...@ucl.ac.uk> writes: > On Fri, 23 Jul 2010 16:59:43 +0000 (UTC), d.tchin <d.tc...@voila.fr> wrote: >> >> Hi >> >> I use babel to use with octave language. I use it and >> define a session so as to have interaction with >> octave process. >> >> It is great to have interaction with octave and >> check the action of the code easily. >> >> I have problem to get output back in org mode file. >> I try the following code : >> >> >> --8<---------------cut here---------------start------------->8--- >> #+tblname: test >> | 1 | 2 | 3 | >> >> #+source: outtest >> #+begin_src octave :session *out* :var vec=test :results output >> vecb=vec; >> vecb >> #+end_src >> >> --8<---------------cut here---------------end--------------->8--- >> >> You will get following output >> >> #+results: outtest >> : vec = >> : >> : 1 2 3 >> : octave.exe> vecb = >> : >> : 1 2 3 >> >> As you see I get two outputs : vec variable and vecb (with octave prompt). >> It is what I expected, excepted vec output.
The inclusion of the prompt is undesirable, and that is now on a to-fix list. But the ":results value" problems are more serious: >> >> With :results value >> >> --8<---------------cut here---------------start------------->8--- >> #+tblname: test >> | 1 | 2 | 3 | >> >> >> >> #+source: outtest >> #+begin_src octave :session *out* :var vec=test :results value >> vecb=vec; >> vecb >> #+end_src >> >> --8<---------------cut here---------------end--------------->8--- >> >> I get the following output >> >> >> #+results: outtest >> : org_babel_eoe OK, perhaps you or other octave users could advise us on how to proceed here, as neither Eric Schulte nor I know octave. Note that this works: #+begin_src octave :session *out* :var vec=test vecb=vec; vecb+0 #+end_src #+results: : 1.00000000e+00 2.00000000e+00 3.00000000e+00 octave evaluation in org works as follows: - The user code is evaluated - The value of the variable 'ans' is written to disk and imported into org And the octave manual tells us that 'ans' is: ,---- | The most recently computed result that was not explicitly assigned to a variable `---- The trouble seems to be that the final expression 'vecb' doesn't count as a computation, and so doesn't change the value of ans. So the current workaround is to say "when using octave, you must end your block with a computation, rather than a simple statement of a variable name." Can someone suggest a better solution? Dan p.s. Or you could do this #+begin_src octave :session *out* :var vec=test vecb=vec; ans=vecb #+end_src #+begin_src octave :session *out* :var vec=test vecb=vec; ans=vecb ans #+end_src >> >> In the octave process, I check that it the last intruction. But >> what I would expect is to get last instruction vecb. >> >> I certainly miss something. Could someone help me on this ? > > I don't think you are missing anything obvious as for the ":results > value" case, I get the same thing. In fact, for ":results output", I > don't actually get any output! I'm not sure why. I wonder if there > is a dependence on the version of Octave? I'm using a fairly old > version (3.0.x instead of 3.2.x). > > : Org-mode version 7.01trans (release_7.01g.24.g6b5cf) > : GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) > : of 2010-05-16 on raven, modified by Debian _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode