Hi, Dan Davison <davison <at> stats.ox.ac.uk> writes:
> > Eric S Fraga <ucecesf <at> ucl.ac.uk> writes: > > > On Fri, 23 Jul 2010 16:59:43 +0000 (UTC), d.tchin <d.tchin <at> voila.fr> wrote: > >> > >> 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 > Thank you for the help. I will use it as it works clearly clearly well. Following exchange you have with Juan Pechiar related to the way the output is displayed, I would like to submit the following examples : First test : --8<---------------cut here---------------start------------->8--- #+tblname: test | 1 | 2 | 3 | #+source: outtest #+begin_src octave :session *out* :var vec=test :results value vector vecb=[vec]; ans=vecb; #+end_src --8<---------------cut here---------------end--------------->8--- The output is the following : #+results: outtest | 1.00000000e+000 2.00000000e+000 3.00000000e+000 | It is considered as one character and each element are not clearly splitted in table. Certainly handled as string as Juan Pechiar. Second test : --8<---------------cut here---------------start------------->8--- #+tblname: test | 1 | 2 | 3 | #+source: outtestb #+begin_src octave :session *out* :var vec=test :results value vector vecb=[vec;vec]; ans=vecb; #+end_src --8<---------------cut here---------------end--------------->8--- The output is the following : #+results: outtestb | 1.00000000e+000 | 2.00000000e+000 | 3.00000000e+000 | | 1.00000000e+000 | 2.00000000e+000 | 3.00000000e+000 | This time output is splitted in a table as it should be ? _______________________________________________ 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