Plex: Simplicial complexes in MATLAB

Public Release Version 2.5 (September 7, 2006)


Plex is a collection of MATLAB routines developed (from 2000–2006) 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 2.5 (the current version) incorporates the persistent homology library of Kettner and Zomorodian as a major component. Plex also supports the construction of witness complexes (de Silva and Carlsson) for topological approximation.

Installing Plex

Plex is available in source form for Unix-like platforms, and in precompiled binary form for Windows XP.

Mac OS X, Linux, Unix

First download the tarball plex-2.5.tar.gz to a suitable directory. You will need to unpack the tarball, compile the C++ code, and modify the MATLAB search path so that MATLAB sees Plex. Download plex-2.5_README.txt for detailed instructions.

We have had serious difficulty compiling Plex on Solaris systems, and occasional difficulty with 64-bit architectures.

Windows XP

Download the archive plex-2.0.1-windows.zip and expand it. To make Plex visible to MATLAB, add the following directories to the MATLAB search path:


After installation

To see whether Plex is awake, type

>> plex

at the MATLAB prompt. It should display an empty complex.


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 commands

>> help Plex
>> help Plex/metric

which describes the functions available the core Plex library and the metric spaces toolbox. There is also detailed help text for each function, accessed in the usual way:

>> help function-name

The document Plexercises2.pdf was used at a computational topology summer school to give students a worked introduction to Plex. It makes use of some additional scripts that are not presently part of the Plex distribution.

Please feel free to contact Vin de Silva if you have any questions or run into any difficulties. There are many improvements we would like to make. Our priorities will be influenced by the feedback we receive.

Coming later

Sample scripts and demos. Support for calculations mod 3 and in other prime characteristics. Improved methods for manipulating filtrations. Improved methods for interacting with the full persistent homology table. Et cetera. Your suggestions are welcome.

Plex Public Release Version 2.5

Once Plex is installed, please type 'px_plexinfo' at the MATLAB prompt for further information.

Plex Version 2.5 was written by Patrick Perry and Vin de Silva, © 2000–2006. The original version of Plex was written and designed by Vin de Silva, ©2000–2003, with contributions from Dawn Banard, Peter Lee, ©2001 and Patrick Perry ©2003. These contributors worked in Gunnar Carlsson's applied topology research group at Stanford University.

Plex incorporates the persistent homology C++ library written by Lutz Kettner and Afra Zomorodian, which is independently available as part of CGAL. Plex also includes the Approximate Nearest Neighbors library by David Mount and Sunil Arya.

Thanks to:

Gunnar Carlsson, for very many productive discussions and much more besides. Facundo Memoli, for compiling and bundling Plex for Windows XP. Stanford University and its Department of Mathematics, for their continued support. NSF grant DMS-0101364. DARPA grant HR 0011-04-1-0025.

E-mail author: v i n . d e s i l v a @ p o m o n a . e d u