From: Uwe B. <ou...@ma...> - 2021-12-03 10:18:47
|
* Matlab+python+org mode a problem with the plot command Hi The following is a bit off topic, my apologies, but it concerns matlab and emacs and I hope that maybe someone on a list could give me a hint. While matlab-mode is very useful for writing code and debug it, I also need the feature of executing code and insert its result nicely formatted in the buffer. This can be achieved by - first installing the python matlab kernel https://de.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html - install the jupyter matlab kernel sudo dpkg --purge python3-ptyprocess sudo -H pip3 install --upgrade --force-reinstall --no-cache-dir jupyter sudo -H pip3 install --upgrade --force-reinstall --no-cache-dir numpy sudo -H pip3 install --upgrade --force-reinstall --no-cache-dir pymatbridge sudo -H pip3 install --upgrade --force-reinstall --no-cache-dir matlab_kernel - start the engine https://de.mathworks.com/help/matlab/matlab_external/start-the-matlab-engine-for-python.html - use org mode - install ob-ipython. - execute #+BEGIN_SRC emacs-lisp (setq org-confirm-babel-evaluate nil) ;don't prompt me to confirm everytime I want to evaluate a block ;;; display/update images in the buffer after I evaluate (add-hook 'org-babel-after-execute-hook 'org-display-inline-images 'append) (add-to-list 'org-src-lang-modes '("matlab" . matlab)) (setq python-shell-interpreter "python3") ;(setq python-shell-interpreter "/usr/bin/python3.6") ;(setq python-shell-interpreter "/usr/bin/python2.7") ;; set default headers for convenience (setq org-babel-default-header-args:matlab '((:results . "output replace") (:session . "matlab") (:kernel . "matlab") (:exports . "code") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no"))) (defalias 'org-babel-execute:matlab 'org-babel-execute:ipython) (defalias 'org-babel-prep-session:matlab 'org-babel-prep-session:ipython) (defalias 'org-babel-matlab-initiate-session 'org-babel-ipython-initiate-session) #+END_SRC Then use the following example #+begin_src matlab :results output latex :exports results :eval never-export :wrap latex x = [1, 2, 3, 4, 5]; fprintf('|%d', x) #+end_src And it works like charm. However and now comes the question: #+begin_src matlab :results output latex :exports code :eval never-export :wrap latex clear all close all t=[0:0.1:1]; y=sin(t); figure(1) plot(t,y) #+end_src The plot figure *does not* pop, while if I use the emacs matlab-shell it does. If somebody has a clue or hint I would be extremely grateful regards Uwe Brauer |