JMatIO - Matlab's MAT-file I/O in JAVA
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 6 commits ahead of gradusnikov:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


JMatIO - Matlab's MAT-file I/O in JAVA

JMatIO is a JAVA library to read/write/manipulate with Matlab binary MAT-files.

If you would like to comment, improve, critisize the project please email me:

or visit JMatIO project page at Sourceforge:

Subversion Access

This project's Subversion repository can be checked out through SVN with the following instruction set:

svn co jmatio

Have fun :)

Wojciech Gradkowski

CHANGE LOG: [06-13-2018]

  • Copied/pasted Lucene's solution for preventing memory leak associated with memory mapped files. jmatio is now ok with Java 8 -> 11-ea This now requires Java 8.


  • Cleaned javadocs


  • Changing to maven nature
  • Adding query parsing


  • Adding supprot for Java objects and Objects
  • Performance optimization


  • Sparse matrix bugfixes by Jonas Pettersson (LU/EAB)
  • MatFileReader performance enhancements by Eugene Rudoy
  • new MatFileReader methods added


  • Regression bug fixed: Double arrays created natively in Matlab are read incorrectly (reversed byte ordering)


  • Added support:UInt8 array
  • MAJOR reading performance enhancement - reading is as fast as in Matlab now
  • Removed Log4j references


  • Other array types (serialized objects (OPAQUE) is done partially)
  • Writer performance enhancement
  • Documentation and examples
  • Organize JUnit tests
  • Refactor exceptions
  • Make structures and cell arrays more user friendly

NOTE: Numerical arrays (MLDouble, MLUint8) are now backed by direct ByteBuffers. For really BIG arrays the maximum heap size for direct buffers may be modified by -XX:MaxDirectMemorySize=

[some.time.2006] Currently supproted data types are:

  • Double array
  • Char array
  • Structure
  • Cell array
  • Sparase array