User Tools

Site Tools


en:software:matlab:ta:dev:i:interop

Interoperability

To make the toolbox most useful for other users, it should be depending only on Matlab™ itself, not on a specific operation system and not on any additional (nonfree) toolboxes.

There are (at least) two aspects of interoperability for a Matlab™-based toolbox:

  • Matlab installation
    Version and additional toolboxes installed
  • Operating system

The toolbox should rely on as few preconditions as ever possible to guarantee a maximum of interoperability between different operating systems as well as Matlab™ installations.

Matlab installation

Matlab™ in itself is a commercial program, and whereas it would be ideal to not have to rely on a commercial software, it seems not feasible to not use Matlab™ for our purposes.

Nevertheless, if you contribute code to the toolbox, beware of a few key aspects:

  • Don't rely on the latest features that you get with the most recent Matlab™ version.1)
  • Don't rely on any additional (non-free) toolboxes.2)

Operating systems

Like it or not, but even in an academic scientific environment, you have to deal with all three major operating systems (Windows, Linux, Mac OS X).

Although Matlab™ tries to help you quite a bit with that, there are a few things you should be aware of from the very beginning.

A non-exhaustive list of important aspects for cross-platform programming with Matlab™:

  • Never hardcode file paths, always use fullfile.
  • Don't use system calls.
  • Always properly test your code on all three major platforms (if ever possible).
1)
The toolbox itself relies on Matlab version 2009b or newer. The reason therefore is that with this version, MathWorks introduced a lot of very useful features for programming larger projects, such as proper exception handling, the toolbox heavily relies on.
2)
Please note that toolboxes are quite expensive, even in academia, and that only few universities actually have Matlab™ site licenses that cover a set of toolboxes.
en/software/matlab/ta/dev/i/interop.txt · Last modified: 2020/09/30 21:35 by 127.0.0.1