[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: [BABEL] Output with octave
From: |
d . tchin |
Subject: |
[Orgmode] Re: [BABEL] Output with octave |
Date: |
Mon, 2 Aug 2010 09:30:24 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
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 ?