Quick Start
This (SWIG) version of the WFDB Toolbox for MATLAB was last updated in 2009, and it will not be updated further. If you have MATLAB 7.11 (R2010b) or later on 64-bit GNU/Linux, Mac OS X, or MS-Windows, please use the currently supported version of the toolbox, available here.
If you have not already installed MATLAB 7 (R14, 2004) or later, do so before continuing!
What is the WFDB Toolbox for MATLAB?
The WFDB Toolbox for MATLAB is a collection of applications for reading, writing, manipulating, and plotting PhysioBank data, implemented as functions in MATLAB.
Since it's based on the WFDB Software Package, the WFDB Toolbox for MATLAB supports reading data directly from this web site (using HTTP). For example, in MATLAB, one can very simply download and plot a signal:
>> r = rdsamp('mitdb/100', 'maxt', ':10'); >> plot(r(:,1), r(:,2));
At the moment, the following functions are implemented:
rdann | read annotation files for WFDB records |
rdsamp | read signal files of WFDB records |
setwfdb | set WFDB paths to default values |
time2sec | convert WFDB-format time intervals into seconds |
wfdb_config | return version and compilation information about the WFDB library |
wfdbdesc | return specifications for signals in WFDB records |
wfdbwhich | find the location of files belonging to WFDB records |
wrann | write annotations for WFDB records into annotation files |
wrsamp | write signal data into WFDB-compatible records |
These functions provide MATLAB interfaces to some of the most useful stand-alone (command-line) WFDB applications, which are more fully documented here. Many, but not all, of the features of the stand-alone applications are accessible via these Toolbox functions; use MATLAB's help function to discover which features are available and how to use them.
The currently supported version of the WFDB Toolbox for MATLAB provides interfaces to a significantly larger set of WFDB applications.
Notes about implementation
The WFDB Toolbox for MATLAB makes use of the compiled WFDB library itself. This means that separate shared libraries are distributed for each supported platform (operating system and CPU).
In this version of the toolbox, MATLAB functions invoke Java translations of WFDB applications. These applications invoke JNI (Java Native Interface) wrappers for WFDB library functions. The JNI wrappers are generated automatically from the WFDB library header files using SWIG.
To use this version of the WFDB Toolbox, you must have installed MATLAB 7 (R14, 2004) or later, with a working Java Virtual Machine (JVM) that supports Java 1.4 or later. There are no plans to support earlier versions of MATLAB or Java. If necessary, it may be possible to upgrade the JVM used by an installation of MATLAB; see this MathWorks technical note on the subject.
The WFDB Toolbox has been developed and tested using Sun/Oracle Java (available freely from http://www.java.com). It is compatible with at least some versions of OpenJDK (IcedTea); if you have problems installing it using IcedTea, try using Sun's Java.
Supported Platforms
The following table shows which combinations of CPU architectures and operating systems have been tested for compatibility with this version of the toolkit.
AMD64, a.k.a. x86-64 | i386, a.k.a. x86 (IA-32) | PowerPC | |
Windows XP/Vista/7 | YES | YES | N/A |
GNU/Linux | YES | YES | N/A |
Mac OS X 10.5 and 10.6 | YES | YES | YES |
Earlier versions of Mac OS X have not been tested but are expected to work. Depending on your MATLAB installation, the WFDB Toolbox installer may ask you to make classpath.txt and librarypath.txt writable; you can do this using the Terminal application (in Applications → Utilities), by typing these commands:
cd /Applications/MATLAB*/toolbox/local chmod +w classpath.txt librarypath.txt
Under GNU/Linux, glibc 2.3.0 or higher, and a Linux 2.6.x or later kernel must be used.
MATLAB versions
Though only a few versions of MATLAB have been tested (including 7.0, 7.1, 7.3, 7.7, and 7.10), the WFDB Toolbox is expected to work for any version of MATLAB with a JVM version 1.4.0 or higher.
Downloading
The WFDB Toolbox for MATLAB is available for direct installation via a Java Web Start application. This makes it very easy to download and install the package, as long as you have a Java Runtime Environment installed.
The steps that the Java Web Start installer will take are summarized briefly below.
In some cases, the installer will be unable to update the MATLAB path to include the directories for the WFDB Toolbox. If this is the case, a dialog box will be shown as the installer is exiting, to inform you about this and assist in updating the path manually (MATLAB's pathtool function can normally be used.) This may happen if there does not appear to be a MATLAB userpath variable set.
Before the installer exits, it will ask whether it should launch MATLAB with a short demonstration script that uses rdsamp and rdann to plot a signal and its annotations.
Other notes about the Java Web Start installer
As the installer runs, it will launch MATLAB several times; on Windows, you may see MATLAB windows pop up briefly, and then disappear. This is normal, and you may safely ignore these windows (do not attempt to close them.)
If one of these runs of MATLAB appears to be taking too long, please note that it is run with a time limit, and will be killed after a couple of minutes, if necessary.
The Java Runtime Environment (JRE) on your computer (not the JVM that MATLAB uses) should be version 1.5.0 or higher to run the WFDB Toolbox installer. If your system has an older version, you can still use the WFDB Toolbox installer, and Java Web Start should automatically download and set up a newer JRE version.
Other methods of installation
If the Java Web Start installer does not work properly, one of the methods below may be helpful.
For GNU/Linux and Mac OS X, a shell script is provided to install the WFDB Toolbox for MATLAB without using Java Web Start. The script's -h option prints details on how it can be used. The -p option is used to specify the path of a directory or URL holding the JAR files needed for installation (see below for notes on compilation); for example
./install.sh -p http://physionet.org/physiotools/matlab/wfdb-swig-matlab
will download (as a set of JAR files) and install the latest version of the WFDB Toolbox. There is also a -g option which allows "global," i.e. system-wide installation, for all users.
Note that install.sh, unlike the Java Web Start installer, can only install for one version of MATLAB at a time.
If all else fails, the necessary JAR files may be downloaded and installed manually. Please see the file README.manual-inst for instructions on how to do this.
Compiling from source code
Of course, the latest source code may be downloaded and compiled. Please see the README file within the tarball for instructions on compilation.
Please note that the WFDB Toolbox for MATLAB has a number of dependencies that it includes as native shared libraries. These are pre-compiled and distributed both with the Java Web Start installer, and in downloadable JAR files (see above.) The source-code tarball does not include source for these dependencies; they must be downloaded and compiled separately, for the target operating system and architecture.
Notes on dependencies
The following external dependencies are used by the WFDB Toolbox for MATLAB. The version numbers listed are those of the shared libraries distributed with this version of the WFDB Toolbox.
cURL | 7.19.3 | http://curl.haxx.se |
GnuTLS | 2.6.4 | http://www.gnu.org/software/gnutls |
GnuPG | 1.4.4 | http://www.gnupg.org |
Libgpg-error | 1.7 | http://www.gnupg.org/download/#libgpg-error |
Libidn | 1.12 | http://www.gnu.org/software/libidn |
WFDB | 10.4.21 | http://physionet.org/physiotools/wfdb.shtml |
WFDB SWIG Wrappers | 10.4.1 | http://www.physionet.org/physiotools/wfdb-swig.shtml |
Note that GnuTLS, GnuPG, and Libgpg-error can be omitted if SSL support in cURL is turned off.
Compilation on GNU/Linux and Mac OS X is fairly straightfoward. On Windows, MinGW is required.