Function: org-babel-execute:octave

org-babel-execute:octave is a byte-compiled function defined in ob-octave.el.gz.

Signature

(org-babel-execute:octave BODY PARAMS &optional MATLABP)

Documentation

Execute Octave or Matlab BODY according to PARAMS.

When MATLABP is non-nil, execute Matlab. Otherwise, execute Octave.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-octave.el.gz
(defun org-babel-execute:octave (body params &optional matlabp)
  "Execute Octave or Matlab BODY according to PARAMS.
When MATLABP is non-nil, execute Matlab.  Otherwise, execute Octave."
  (let* ((session
	  (funcall (intern (format "org-babel-%s-initiate-session"
				   (if matlabp "matlab" "octave")))
		   (cdr (assq :session params)) params))
         (result-type (cdr (assq :result-type params)))
	 (full-body
	  (org-babel-expand-body:generic
	   body params (org-babel-variable-assignments:octave params)))
	 (gfx-file (ignore-errors (org-babel-graphical-output-file params)))
	 (result (org-babel-octave-evaluate
		  session
		  (if gfx-file
		      (mapconcat 'identity
				 (list
				  "set (0, \"defaultfigurevisible\", \"off\");"
				  full-body
				  (format "print -dpng %S\nans=%S" gfx-file gfx-file))
				 "\n")
		    full-body)
		  result-type matlabp)))
    (if gfx-file
	nil
      (org-babel-reassemble-table
       result
       (org-babel-pick-name
	(cdr (assq :colname-names params)) (cdr (assq :colnames params)))
       (org-babel-pick-name
	(cdr (assq :rowname-names params)) (cdr (assq :rownames params)))))))