Tree [8e434f] master matio_1_5_8 v1.5.8 /

File Date Author Commit
 config 2016-05-25 tbeu tbeu [d59ed9] Add support for HDF5 v1.10
 documentation 2016-06-30 tbeu tbeu [f39fc4] Fix short description of Mat_GetVersion
 getopt 2016-01-28 tbeu tbeu [07728a] Fix C++ compilation
 patches 2006-07-29 Christopher Hulbert Christopher Hulbert [f08ac6] Import matio.
 share 2006-07-29 Christopher Hulbert Christopher Hulbert [f08ac6] Import matio.
 src 2016-06-30 tbeu tbeu [8e434f] Update order of field initialization
 test 2016-04-29 tbeu tbeu [f088bd] Cosmetics in test description
 tools 2016-04-06 tbeu tbeu [f56d69] Read field data in read_selected_data
 visual_studio 2016-06-30 tbeu tbeu [85dfee] Bump version and NEWS for v1.5.8
 .gitignore 2014-08-07 Herbert Gsenger Herbert Gsenger [fa45de] Add Visual Studio specific files to list of ign...
 .gitmodules 2013-07-10 Christopher Hulbert Christopher Hulbert [dab377] Update submodule for test datasets
 .travis.yml 2016-06-02 tbeu tbeu [9841d6] Update HDF5 to v1.8.17 for Travis CI
 COPYING 2016-01-10 tbeu tbeu [bcdefe] Bump year 2016 for v1.5.3 2016-02-02 tbeu tbeu [54114e] Add MSVC specific resource file to distribution
 NEWS 2016-06-30 tbeu tbeu [85dfee] Bump version and NEWS for v1.5.8 2016-06-21 tbeu tbeu [c5e96f] Fix format of section 2.1.2 HDF5 2016-01-13 Greg Sjaardema Greg Sjaardema [53d38e] Let work on Darwin and Linux 2016-06-30 tbeu tbeu [85dfee] Bump version and NEWS for v1.5.8
 coverity_model.c 2016-02-01 tbeu tbeu [8109b1] Add license header to coverity_model.c 2009-10-13 Christopher Hulbert Christopher Hulbert [ca35d9] Merge branch 'matio_1_5_0_branch'

Read Me

MATLAB MAT file I/O library

Build status

Build Status Build Status Coverity Scan Build Status Coverage Status Build Status

Table of Contents

  1. Introduction
  2. 1.1Contact
  3. 1.2 Acknowledgements
  4. 1.3 Contributing
  5. 1.4 Questions and Reporting Bugs
  6. Building
  7. 2.1 Dependencies
  8. 2.2 Building matio
  9. 2.3 Platforms
  10. License

1.0 Introduction

Matio is an open-source C library for reading and writing MATLAB MAT files.
This library is designed for use by programs/libraries that do not have access or do not want to rely on MATLAB's shared libraries.

1.1 Contact

You can contact Christopher Hulbert through email at and Thomas Beutlich through email at

1.2 Acknowledgements

The following people/organizations have helped in the development of matio through patches, bug reports, and/or testing:

1.3 Contributing

If you are interested in collaborations, contact us via email (see Section 1.1).

1.4 Questions and Reporting Bugs

Questions can be asked using the forums on the sourceforge site hosting matio (

Bugs, enhancements, etc. should be submitted using one of the trackers on the sourceforge page (

2.0 Building

This section describes how to build matio. Section 2.1 describes the dependencies, Section 2.2 how to build/test matio, and Section 2.3 documents the platforms matio has been tested on.

2.1 Dependencies

Matio has two optional dependencies. These are not required for the software to work, but without them some files may be unreadable. Zlib is required to read/write level 5 MAT files that use compression. HDF5 is required to work with newer MAT files that use the HDF5-format files.

2.1.1 zlib

To support compressed MAT files, zlib 1.2.3 or greater is required. The zlib software can be downloaded from

2.1.2 HDF5

Support for MAT file version 7.3 requires the HDF5 library. This library can be downloaded from Matio requires HDF5 version ≥ 1.8.x. Neither deprecated HDF5 1.6.x API functions nor HDF5 higher-level functions are called.

  • Building matio with HDF5 1.8.x requires configuration of HDF5 with default API version 1.8 (i.e. --with-default-api-version=v18).
  • Building matio with HDF5 1.10.x requires configuration of HDF5 with either default API version 1.10 (i.e. --with-default-api-version=v110) and enabled legacy API functions (i.e. --enable-deprecated-symbols=yes) or configuration of HDF5 with deprecated API version 1.8 (i.e. --with-default-api-version=v18).

For Windows, the pre-compiled binaries can be used which also include a DLL of zlib to satisfy the zlib dependency.

2.2 Building matio

2.2.1 Quick Build Guide

The primary method for building the software is using configure followed by make. After building, the testsuite can be executed to test the software using make check. The software can be installed using make install. For example,

$ tar zxf matio-X.Y.Z.tar.gz
$ cd matio-X.Y.Z
$ ./configure
$ make
$ make check
$ make install

If any of the tests in the testsuite fail, you should report the failure using the tracker (see Section 1.4). You should attach the generated testsuite.log file to the bug report.

2.2.2 Configure Options

The configure script used to build the software takes a number of options. This section describes the key options.

  • --enable-mat73=yes
    This flag en/disables the support for version 7.3 MAT files. The option only makes sense if built with HDF5 as support for version 7.3 files. It will be disabled if HDF5 is not available.
  • --enable-extended-sparse=yes
    Enable extended sparse matrix data types not supported in MATLAB. MATLAB only supports double-precision sparse data. With this flag, matio will read sparse data with other types (i.e. single-precision and integer types).
  • --with-matlab=DIR
    This option specifies the directory (DIR) with the 'matlab' program. With this option, the testsuite will check that the MAT files written by matio can be read into MATLAB. Without this, the test will only check that matio can read the file written and if successful the test will be skipped. If matio can not read the file, the test will fail.
  • --with-zlib=DIR
    This option specifies the prefix where zlib is installed (see Section 2.1.1 for information about zlib).
  • --with-hdf5=DIR
    This option specifies the prefix where the HDF5 software is installed (see Section 2.1.2 for information about HDF5).
  • --with-default-file-ver=version
    This option sets the default MAT file version (4,5,7.3) that will be used when writing. The default file version is used by the Mat_Create macro and the Mat_CreateVer function when MAT_FT_DEFAULT is used for the version argument.
  • --with-libdir-suffix=suffix
    This option specifies a suffix to apply to library directories when installing and looking for dependent libraries (i.e. HDF5 and zlib). For example, some multi-arch Linux distributions install 64-bit libraries into lib64 and 32-bit libraries into lib.

2.2.3 Visual Studio

Visual Studio solutions are provided as matio_vs2008.sln for VS2008 and as matio.sln for VS2010 (and newer). The solutions are set up to build a DLL of the matio library (libmatio.dll) and matdump tool and assume HDF5 is available in the directory specified by the HDF5_DIR environment variable. It is assumed that the shared libraries of HDF5 (and zlib) are available. If the static libraries of HDF5 (and zlib) are installed/built the macro H5_BUILT_AS_STATIC_LIB needs to be defined (instead of H5_BUILT_AS_DYNAMIC_LIB).

2.2.4 Testsuite

A testsuite is available when building with the GNU autotools. To run the testsuite, first configure and build matio. After building run make check to run the testsuite. If matio was built without zlib, the compressed variable tests will be skipped. If built without HDF5, the tests for version 7.3 MAT files will be skipped. If the path to the MATLAB application was not specified (--with-matlab), the write tests will fail if matio cannot read the file and skip if matio can read the file. The write tests will pass if MATLAB is available and can also read the file.

To report matio testsuite failures, compress the testsuite.log file in the test sub-directory of the build directory. Upload the compressed log file along with a bug report (see Section 1.4 for information on reporting bugs).

2.3 Platforms

The library has been tested/used on Linux, Windows, OS X, and AIX including both little-endian and big-endian architecture.

3.0 License

This software is provided under a Simplified BSD license. See the COPYING file for details on the license.

MATLAB is a registered trademark of The MathWorks, Inc.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks