Skip to main content

Load MATLAB .mat 7.3 into Python native data types (via h5/hd5/hdf5/h5py)

Project description

pypi Version

mat 7.3

Load MATLAB 7.3 .mat files into Python.

Starting with MATLAB 7.3, .mat files have been changed to store as custom hdf5 files. This means they cannot be loaded by scipy.io.loadmat any longer and raise.

NotImplementedError: Please use HDF reader for matlab v7.3 files

Quickstart

This library loads MATLAB 7.3 HDF5 files into a Python dictionary.

import mat73
data_dict = mat73.loadmat('data.mat')

As easy as that!

By enabling use_attrdict=True you can even access sub-entries of structs as attributes, just like in MATLAB:

data_dict = mat73.loadmat('data.mat', use_attrdict=True) 
struct = data_dict['structure'] # assuming a structure was saved in the .mat
struct[0].var1 == struct[0]['var1'] # it's the same!

You can also specifiy to only load a specific variable or variable tree, useful to reduce loading times

data_dict = mat73.loadmat('data.mat', only_include='structure') 
struct = data_dict['structure'] # now only structure is loaded and nothing else

data_dict = mat73.loadmat('data.mat', only_include=['var/subvar/subsubvar', 'tree1/']) 
tree1 = data_dict['tree1'] # the entire tree has been loaded, so tree1 is a dict with all subvars of tree1
subsubvar = data_dict['var']['subvar']['subsubvar'] # this subvar has been loaded

Installation

To install, run:

pip install mat73

Alternatively for most recent version:

pip install git+https://github.com/skjerns/mat7.3

Datatypes

The following MATLAB datatypes can be loaded

MATLAB Python
logical np.bool_
single np.float32
double np.float64
int8/16/32/64 np.int8/16/32/64
uint8/16/32/64 np.uint8/16/32/64
complex np.complex128
char str
struct list of dicts
cell list of lists
canonical empty []
missing None
sparse scipy.sparse.csc
Other (ie Datetime, ...) Not supported

Short-comings

  • This library will only load mat 7.3 files. For older versions use scipy.io.loadmat
  • Proprietary MATLAB types (e.g datetime, duriation, etc) are not supported. If someone tells me how to convert them, I'll implement that
  • For now, you can't save anything back to the .mat. It's a bit more difficult than expected, so it's not on the roadmap for now
  • See also hdf5storage, which can indeed be used for saving .mat, but has less features for loading
  • See also pymatreader which has a (maybe even better) implementation of loading MAT files, even for older ones

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mat73-0.63.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mat73-0.63-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file mat73-0.63.tar.gz.

File metadata

  • Download URL: mat73-0.63.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for mat73-0.63.tar.gz
Algorithm Hash digest
SHA256 c7e901e302d8172e6f1871819fb3f5f3d4a723c08c5aebde5d8d7b45e687d20b
MD5 08218391c1615caf78407bfb3eec4d91
BLAKE2b-256 44d4ed1749e8c7dcde6000755bfd18a436dfc9eec9a5b816f2de1b9637432cfa

See more details on using hashes here.

File details

Details for the file mat73-0.63-py3-none-any.whl.

File metadata

  • Download URL: mat73-0.63-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for mat73-0.63-py3-none-any.whl
Algorithm Hash digest
SHA256 9708cd704535ebdbb2603816c7aaa0a85fec4f26da4c9a6b36c8fa803f668fa6
MD5 06e8eb74135666179ddcc6c8add457c2
BLAKE2b-256 f0e7c16a3a27f3a38b0722558dfafff59c9a24f020adaa116445ca4d358707cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page