eprcontrol toolbox for MATLAB®

Welcome! This is the documentation of the eprcontrol toolbox for MATLAB®. The idea behind this toolbox is to allow users to control their EPR spectrometers for some rather special types of experiments (namely, TREPR experiments) using MATLAB® with a minimum of effort and a maximum of flexibility.


The eprcontrol toolbox for MATLAB® is currently actively being developed and still considered in Alpha development state. Therefore, expect frequent changes in features and public APIs that may break your own code. Nevertheless, feedback as well as feature requests are highly welcome.


  • fully object-oriented

  • highly modular, easily extendible

  • focus on usability

  • fully documented: user and API documentation available

  • MATLAB® package not polluting the namespace

  • Base classes for general experiment control software besides EPR spectroscopy

  • Recipe-driven measurements using text files: no programming experience needed

Where to start?

Those unsure what this is all about may want to have a look at who is the target audience, and if this fits, continue with the basic concepts. Those eager to start may simply install the package as shown below and jump to the use cases section.


Install the package by adding the base path to MATLAB®:

cd path/to/package

Due to the package nature, this will not pollute the MATLAB® namespace, all classes (and subpackages) will be accessible using the eprcontrol prefix.

A note on the programming language

It is the personal opinion and experience of this package’s author that MATLAB® is not well-suited for “real” programming due to lacking many tools that help the programmer creating and maintaining high-quality code (such as an IDE with proper refactoring support and the possibility to develop test-first). However, there was a need due to external constraints to develop a measurement program for time-resolved EPR experiments in MATLAB®. The general concepts should, however, apply more generally and provide a starting point for developments in other languages such as Python.


The project is licensed under the BSD license (2-clause). For details, see the file LICENSE in the root directory of the toolbox.


If you use this toolbox for your research and publish results based on it, please name its author in the acknowledgements section of your manuscript and mention the toolbox in the methods section.

Indices and tables