TinyMAT
a library to write Matlab MAT-files
TinyMAT - A Library for Writing Matlab MAT-files

A (partly templated) C++ library to handle writing simple Matlab(r) MAT file in Version "MATLAB 5.0" or higher. This library implements a very simple interface to write Matlab MAT file (level 5), as described in http://www.mathworks.de/help/pdf_doc/matlab/matfile_format.pdf

This software is licensed under the term of the GNU Lesser General Public License 2.1 (LGPL 2.1) or above. See licensesec for details.

Some helpful links:

Library Bindings:

The following example code writes some arrays and matrices into a MAT-file:

TinyMATWriterFile* mat=TinyMATWriter_open("test.mat");
if (mat) {
// a 3D matrix in row-major
double mat432[4*3*2]= {
1,2,3,
4,5,6,
10,20,30,
40,50,60,
100,200,300,
400,500,600,
1000,2000,3000,
4000,5000,6000,
};
int32_t mat432_size[3] = {3,2,4}; // columns, rows, matrices,...
// a struct as a map of doubles
std::map<std::string, double> mp1;
mp1["x"]=100;
mp1["y"]=200;
mp1["z"]=300;
mp1["longname"]=10000*M_PI;
TinyMATWriter_writeStruct(mat, "struct1", mp1);
TinyMATWriter_writeMatrixND_rowmajor(mat, "matrix432", mat432, mat432_size, 3);
}
TinyMATWriter_open
TINYMATWRITER_EXPORT TinyMATWriterFile * TinyMATWriter_open(const char *filename, const char *description=NULL, size_t bufSize=1024 *100)
create a new MAT file
TinyMATWriter_writeMatrixND_rowmajor
void TinyMATWriter_writeMatrixND_rowmajor(TinyMATWriterFile *mat, const char *name, const T *data_real, const int32_t *sizes, uint32_t ndims)
write a N-dimensional double matrix into a MAT-file
Definition: tinymatwriter.h:342
TinyMATWriter_close
TINYMATWRITER_EXPORT void TinyMATWriter_close(TinyMATWriterFile *mat)
close a given MAT file
TinyMATWriter_writeStruct
TINYMATWRITER_EXPORT void TinyMATWriter_writeStruct(TinyMATWriterFile *mat, const char *name, const std::map< std::string, double > &data)
write a a std::map<std::string,double> into a MAT-file as a struct