MAT is a format used by Mathworks' Matlab for storing formatted data (matrices, structs, scalars and strings).
Apart from Matlab, the format is also supported by Mathematica. GNU Octave, an open source alternative to Matlab, should be able to read and write the format as well. Scientific computing packages NumPy and SciPy enable support for MAT-files in Python.
The published specification makes a distinction between Level 4 and Level 5 MAT-files, where Level 4 files are compatible with older MATLAB versions (up to version 4), whereas level 5 files are compatible with MATLAB versions 5 and higher. The overall layout of a Level 4 file is quite different from Level 5, and the two might even be considered separate formats. For example, Level 4 files don't have a unique 'magic' byte pattern that would allow easy identification, whereas the header of a Level 5 file includes a descriptive text field that could be used for this.
Matlab_figure files are really just a special case of the level 5 MAT-File format.
Level 5 files begin with the text string
MATLAB 5.0 MAT-file. No such unique pattern exists for level 4. The MIME type of this format is unofficial, and it is used by Apache Tika
- MATCAT - MAT-File Corruption Analysis Tool (requires MATLAB)
- What is the difference between .m and .mat files in MATLAB
- MAT file versions
- Saving and loading a MAT-file in GNU Octave
- Writing Custom Applications to Read and Write MAT-Files here