PLEX: Simplicial complexes in MATLAB

Public Release Version 1.0


PLEX is a collection of MATLAB routines developed (from 2000–2003) as a research tool for building and studying simplical complexes, generated from real or synthetic point-cloud data. The library defines a new kind of object, called a 'plex' object, together with various operations ('methods') on plex objects. According to MATLAB convention, all the code for the object definition and methods are kept in a directory called @plex/, and its parent directory needs to be on the MATLAB search path.

PLEX public release 1 (the current version) supports both rational (ie floating point) and mod 2 calculations. The mod 2 routines (as well as one internal PLEX function) are all written in C, as Mex functions in MATLAB. Precompiled binaries and makefiles are provided, in addition to the C source code. PLEX will still run if the Mex functions are not compiled, but mod 2 homology will be unavailable.

Downloading PLEX

First download the tarball plex-2.5.1.tar.gz and put it in a suitable directory. The tarball can be unpacked using standard compression programs (such as StuffIt). In Unix or Linux, the following command will do the job:

% tar -zxvf plex.tar.gz

This should create a folder plex/, which contains all the necessary files arranged into various subfolders. To use PLEX, the folder plex/ should be put in the MATLAB search path, or alternatively MATLAB can be started from within that directory. When the function plex is first called during a MATLAB session, the remaining parts of the package are automatically initialised. Have a look at the various readme.txt files for further information.


PLEX is generally intended to be self-documented, with detailed help text for all defined functions. The right place to start is with the MATLAB command

>> help plex

which explains the syntax of the 'plex' command, and lists several other functions in the PLEX library. There is also an old introductory text, written for a group of summer research students at Stanford, which you may wish to look at. Any comments are welcome, for when I get round to writing proper documentation.

Coming soon

We plan several future additions to PLEX, including support for persistent homology and witness complexes. Proper external documentation is also on the way. This should all happen by early 2004. Feedback is welcome; please contact Vin de Silva. Patrick Perry is currently working on a C++ PLEX library.

PLEX Public Release Version 1.0


PLEX was designed and coded by Vin de Silva, ©2000–2003. Mod 2 methods coded by Dawn Banard ©2001. Various improvements due to Dawn Banard, Peter Lee ©2001 and Patrick Perry ©2003.

We thank Mark Leisher for fixing some compilation problems. The corrections are in Plex 2.5.1.

Thanks to:

Gunnar Carlsson, for very many productive discussions. Stanford University and its Department of Mathematics, for their continued support. The National Science Foundation, which has partially supported this work with grant DMS-0101364. Please see the accompanying file 'license.txt' for the conditions under which PLEX is distributed, or type 'plexlicense' at the MATLAB prompt.

E-mail author: s i l v a @ m a t h . s t a n f o r d . e d u