emacs-orgmode
[Top][All Lists]
Advanced

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








reply via email to

[Prev in Thread] Current Thread [Next in Thread]