Skip to content

Files

Latest commit

eea387a · May 25, 2025

History

History
165 lines (110 loc) · 6.53 KB

README.org

File metadata and controls

165 lines (110 loc) · 6.53 KB

Emacs MATLAB-mode

MathWorks MATLAB® and GNU Emacs integration:

  1. matlab-mode for editing *.m files.
    • Edit MATLAB code with syntax highlighting and smart indentation.
    • Lint MATLAB code with fix-it’s using the MATLAB Code Analyzer.
  2. Code navigation and more
    • The MATLAB Language Server, matlabls, for code navigation, code completion, go to definition, find references, and more. matlabls is a separate special MATLAB process that Emacs communicates with. For example, when you ask Emacs to jump to the definition of a function via M-. or M-x xref-find-definitions, Emacs will ask the matlabls process where the function is located and use it’s response to jump to the definition.
      +-----------+            +------------+
      |           |            |            |
      |   Emacs   |<==========>|  matlabls  |
      |           |            |            |
      +-----------+            +------------+
              

      You need to install and setup the MATLAB Language Server to use it. See doc/matlab-language-server-lsp-mode.org.

    • Imenu support for quickly jumping to function declarations in the current *.m file. See doc/matlab-imenu.org.
  3. M-x matlab-shell for running and debugging MATLAB within Emacs (Unix only).
    • MATLAB command window errors are hyper-linked and files open in Emacs
    • Debugging support is available from the MATLAB menu.
    • matlab-shell uses company-mode for completions.

    See doc/matlab-shell-for-unix.org

  4. M-x matlab-shell to run remote Unix MATLAB within your local Emacs session.
    +----------------+                 +-----------------+
    | Local Computer |                 | Remote Computer |
    |                |<===============>|                 |
    |     Emacs      |      ssh        |      MATLAB     |
    +----------------+                 +-----------------+
        

    You use Emacs on your local computer to edit files on the remote computer, run and debug remote MATLAB in a matlab-shell in your local Emacs. See doc/remote-matlab-shell.org.

  5. M-x matlab-netshell for running MATLAB code on Microsoft Windows within Emacs using an attached MATLAB.
    +--------------- Emacs ----------------+         +------------  MATLAB  ------------+
    |                                      |         |                                  |
    | (1) M-x matlab-netshell-server-start |         | (2) connect to Emacs             |
    |                                      |<=======>| >> addpath <matlab-mode>/toolbox |
    | (3) Visit script *.m files and use   |         | >> emacsinit                     |
    |     "MATLAB -> Code Sections" menu   |         | >>                               |
    |     or the key bindings              |         |                                  |
    +--------------------------------------+         +----------------------------------+
        
  6. Code sections support for MATLAB script files. See doc/matlab-code-sections.org.
  7. Creation of scientific papers, theses, and documents using MATLAB and http://orgmode.org.
    • Org enables literate programming which directly supports reproducible research by allowing scientists and engineers to write code along with detailed explanations in natural language.
    • You author code plus natural language descriptive text in *.org files. When you evaluate MATLAB or other language code blocks within the *.org files, org inserts the results back into the *.org file.
    • You can combine multiple *.org files into one final document, thus enabling larger scientific documents.
    • See ./examples/matlab-and-org-mode/ to get started. This directory contains a PDF generated from ./examples/matlab-and-org-mode/matlab-and-org-mode.org.
  8. tlc-mode for editing *.tlc files. The Target Language Compiler (TLC) is part of Simulink® Coder™.

Installation

Install via ELPA or MELPA

Install via ELPA or MELPA. MELPA contains the latest. To install from MELPA, add to your ~/.emacs

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

To install from either ELPA or MELPA

M-x RET list-packages RET

and click on matlab-mode to install.

Install from this repository

Build:

cd /path/to/Emacs-MATLAB-mode

# Build lisp and run tests (requires MATLAB executable):
make

# Alternatively, build lisp and run tests using a specific MATLAB executable:
make MATLAB_EXE=/path/to/matlab

# If desired, you can separate the building of lisp and running tests using:
make lisp
make tests
make tests MATLAB_EXE=/path/to/matlab # if using a specific MATLAB executable

Add the following to your ~/.emacs file:

(add-to-list 'load-path "/path/to/Emacs-MATLAB-mode")
(load-library "matlab-autoload")

MathWorks Products (https://www.mathworks.com)

Emacs MATLAB-mode is designed to be compatible with the last six years of MathWorks products and may support even older versions of MathWorks products.

License

GPL3, https://www.gnu.org/licenses/gpl-3.0.en.html (see License.txt)

Community Support

MATLAB Central

FAQ

See doc/faq.org

Mailing list

https://sourceforge.net/projects/matlab-emacs/

Releases

See NEWS.org