Welcome to pymatreader

Introduction

pymatreader is a small python package that provides a consistent way of loading all versions of Matlab .mat files.

pymatreader returns a python dict with all the variables found in the .mat file. Matlab data types are converted to python datatypes as follows:

Matlab

Python

Primitive types (double, single, int, string)

Primitive numpy types (double, single, int, string)

Structure

dict

Matrix/Vector

numpy ndarray

Cell array

list

Struct array

dict containing lists

Install

pymatreader is available via pypi:

pip install pymatreader

You can also install it via conda:

conda install -c obob pymatreader

Reference

pymatreader only has one function:

pymatreader.read_mat(filename, variable_names=None, ignore_fields=None, uint16_codec=None)[source]

This function reads .mat files of version <7.3 or 7.3 and returns the contained data structure as a dictionary of nested substructure similar to scipy.io.loadmat style.

Parameters:
  • filename (str) – Path and filename of the .mat file containing the data.

  • variable_names (list of strings, optional) – Reads only the data contained in the specified dict key or variable name. Default is None.

  • ignore_fields (list of strings, optional) – Ignores every dict key/variable name specified in the list within the entire structure. Only works for .mat files v 7.3. Default is [].

  • uint16_codec (str | None) – If your file contains non-ascii characters, sometimes reading it may fail and give rise to error message stating that “buffer is too small”. uint16_codec allows to specify what codec (for example: ‘latin1’ or ‘utf-8’) should be used when reading character arrays and can therefore help you solve this problem.

Returns:

A structure of nested dictionaries, with variable names as keys and variable data as values.

Return type:

dict

In case of problems

Please raise an issue here: https://gitlab.com/obob/pymatreader/issues

If you want to contribute

Your contribution is always welcome!

pymatreader is developed on gitlab: https://gitlab.com/obob/pymatreader

Please make sure to include proper tests and adhere to the PEP 8 Style Guide.