Re: [Matlab-emacs-discuss] [Matlab+org (use the python eninge or not)] (was: new branches, plans, rename development branch to default, mirror to github)

2024-04-25 Thread martinoidar



On 23.04.2024 15:33, Uwe Brauer wrote:

"m" == martinoidar   writes:

Hi

I decided to start a new thread, since I made some progress and it seems
there are at least two ways to execute matlab from an org buffer and
insert the result back into that buffer.

 1. Using the python engine matlab ships (I am not describing the
setup now)
Disadvantage
a. Not all matlab releases support all ptyhon versions. For
   example ptyhon 3.5 is only supported till 2019a

b. It takes some time for the python engine to start

Advantage

a. The format of the result is very nice.

 2. Using the matlab-shell itself (thanks @Martin for pointing this
out)
Test Configuration:

a. Start emacs -Q

b. Load the following file

--8<---cut here---start->8---
(setq load-path (cons (expand-file-name 
"~/emacs/site-lisp/packages/src/Matlab/HG-Git/matlab-sf-hg")  load-path))
(load-file "/home/oub/emacs/init/custom-init-faces.el")
(require 'company-matlab-shell)
(require 'org)
(require 'gdb-mi)
(autoload 'matlab-mode "matlab" "Enter Matlab mode." t)
(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))
(autoload 'matlab-shell "matlab" "Interactive Matlab mode." t)
(org-babel-do-load-languages
  'org-babel-load-languages '(
  (C . t) ; enable processing C, C++, and D source 
blocks
  (matlab . t)
  ;;(perl . t)
  (octave . t)
  (org . t)
  (python . t)
  (plantuml . t)
  (shell . t)
  ))

(setq org-babel-default-header-args:matlab
'((:results . "output") (:session . "*MATLAB*")))

--8<---cut here---end--->8---

And load ob-octave-fix.el
  https://github.com/karthink/.emacs.d/blob/master/plugins/ob-octave-fix.el

Then the following code can be executed in a org buffer

#+begin_src matlab :results output latex :exports results  :eval never-export 
:wrap latex
clear all
   x = [1, 2, 3, 4, 5];
   disp(sprintf('|%d', x))
#+end_src

#+RESULTS:
#+begin_latex
x = [1, 2, 3, 4, 5];
disp(sprintf('|%d', x))
|1|2|3|4|5
#+end_latex


#+begin_src matlab :results output latex :exports results  :eval never-export 
:wrap latex
   clear all
   x = [1, 2, 3, 4, 5];
   disp(sprintf('|%d', x))
#+end_src

#+RESULTS:
#+begin_latex
|1|2|3|4|5
#+end_latex

That already indicates that the formatting needs care, moreover
=fprintf= is not supported
#+begin_src matlab :results output latex :exports results  :eval never-export 
:wrap latex
   clear all
   x = [1, 2, 3, 4, 5] ;
   fprintf('|%d', x)
#+end_src

#+RESULTS:
#+begin_latex
#+end_latex

So I need to investigate this a bit more.

In summary: the second solution works surprisingly well and is faster
than the python solution, but the formatting seems to me more restricted
as in the python case.

Any comments?

Has  anybody tried  this out?

@John you talked about such  feature in the past.

Can you confirm this behavior?

Regards

Uwe



Hi Uwe,

My comments on the topic have grown to such a size that I decided it's 
better to make a post from them.


Please have a look here:

https://cissic.github.io/posts/latex-output-from-matlab-octave-source-blocks/

Regards,

M




___
Matlab-emacs-discuss mailing list
Matlab-emacs-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss


Re: [Matlab-emacs-discuss] [Matlab+org (use the python eninge or not)] (was: new branches, plans, rename development branch to default, mirror to github)

2024-04-25 Thread martinoidar


On 25.04.2024 21:55, martinoidar wrote:


On 23.04.2024 15:33, Uwe Brauer wrote:

"m" == martinoidar  writes:

Hi

I decided to start a new thread, since I made some progress and it seems
there are at least two ways to execute matlab from an org buffer and
insert the result back into that buffer.

 1. Using the python engine matlab ships (I am not describing the
    setup now)
    Disadvantage
    a. Not all matlab releases support all ptyhon versions. For
   example ptyhon 3.5 is only supported till 2019a

    b. It takes some time for the python engine to start

    Advantage

    a. The format of the result is very nice.

 2. Using the matlab-shell itself (thanks @Martin for pointing this
    out)
    Test Configuration:

    a. Start emacs -Q

    b. Load the following file

--8<---cut here---start->8---
(setq load-path (cons (expand-file-name 
"~/emacs/site-lisp/packages/src/Matlab/HG-Git/matlab-sf-hg") load-path))

(load-file "/home/oub/emacs/init/custom-init-faces.el")
(require 'company-matlab-shell)
(require 'org)
(require 'gdb-mi)
(autoload 'matlab-mode "matlab" "Enter Matlab mode." t)
(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))
(autoload 'matlab-shell "matlab" "Interactive Matlab mode." t)
(org-babel-do-load-languages
  'org-babel-load-languages '(
  (C . t) ; enable processing C, C++, and 
D source blocks

  (matlab . t)
  ;;(perl . t)
  (octave . t)
  (org . t)
  (python . t)
  (plantuml . t)
  (shell . t)
  ))

(setq org-babel-default-header-args:matlab
    '((:results . "output") (:session . "*MATLAB*")))

--8<---cut here---end--->8---

And load ob-octave-fix.el
https://github.com/karthink/.emacs.d/blob/master/plugins/ob-octave-fix.el

Then the following code can be executed in a org buffer

#+begin_src matlab :results output latex :exports results  :eval 
never-export :wrap latex

clear all
   x = [1, 2, 3, 4, 5];
   disp(sprintf('|%d', x))
#+end_src

#+RESULTS:
#+begin_latex
x = [1, 2, 3, 4, 5];
disp(sprintf('|%d', x))
|1|2|3|4|5
#+end_latex


#+begin_src matlab :results output latex :exports results  :eval 
never-export :wrap latex

   clear all
   x = [1, 2, 3, 4, 5];
   disp(sprintf('|%d', x))
#+end_src

#+RESULTS:
#+begin_latex
|1|2|3|4|5
#+end_latex

That already indicates that the formatting needs care, moreover
=fprintf= is not supported
#+begin_src matlab :results output latex :exports results  :eval 
never-export :wrap latex

   clear all
   x = [1, 2, 3, 4, 5] ;
   fprintf('|%d', x)
#+end_src

#+RESULTS:
#+begin_latex
#+end_latex

So I need to investigate this a bit more.

In summary: the second solution works surprisingly well and is faster
than the python solution, but the formatting seems to me more restricted
as in the python case.

Any comments?

Has  anybody tried  this out?

@John you talked about such  feature in the past.

Can you confirm this behavior?

Regards

Uwe



Hi Uwe,

My comments on the topic have grown to such a size that I decided it's 
better to make a post from them.


Please have a look here:

https://cissic.github.io/posts/latex-output-from-matlab-octave-source-blocks/ 



Regards,

M



Update:

I've just noticed that not everything is properly rendered in markdown 
form.


Here's a pdf version of the document:

https://github.com/cissic/temp-aux-repo/blob/main/2024-04-25-latex-output-from-matlab-octave-source-blocks.pdf





___
Matlab-emacs-discuss mailing list
Matlab-emacs-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss