There is a nice package called mat4py which can easily be installed using
pip install mat4pyIt is straightforward to use (from the website):
Load data from a MAT-file
The function loadmat loads all variables stored in the MAT-file into a simple Python data structure, using only Python’s dict and list objects. Numeric and cell arrays are converted to row-ordered nested lists. Arrays are squeezed to eliminate arrays with only one element. The resulting data structure is composed of simple types that are compatible with the JSON format.
Example: Load a MAT-file into a Python data structure:
from mat4py import loadmat data = loadmat('datafile.mat')The variable data is a dict with the variables and values contained in the MAT-file.
Save a Python data structure to a MAT-file
Python data can be saved to a MAT-file, with the function savemat. Data has to be structured in the same way as for loadmat, i.e. it should be composed of simple data types, like dict, list, str, int, and float.
Example: Save a Python data structure to a MAT-file:
from mat4py import savemat savemat('datafile.mat', data)The parameter data shall be a dict with the variables.
Created: April-05, 2021 | Updated: July-18, 2021 MATLAB is a programming platform that is widely used these days for
numerical computation, statistical analysis, and generating algorithms. It is a very flexible language and allows us to integrate our work with different programming languages like Python. The MATLAB workspace saves all its variables and contents in a mat file. In this tutorial, we will learn how to open and read mat files in Python.
Use the scipy.io Module to Read .mat Files in Python
The scipy.io module has the loadmat() function, which can open and read mat files. The following code shows how to use this function.
import scipy.io mat = scipy.io.loadmat('file.mat')Note that this method does not work for the MATLAB version below 7.3. We can either save the mat file in lower versions using the below command in MATLAB to avoid this.
save('test.mat', '-v7')Use the NumPy Module to Read mat Files in Python
It is discussed earlier how we cannot open files in MATLAB 7.3 using the scipy.io module in Python. It is worth noting that files in version 7.3 and above are hdf5 datasets, which means we can open them using the NumPy library. For this method to work, the h5py module needs to be installed, which requires HDF5 on your system.
The code below shows how to read mat files using this method.
import numpy as np import h5py f = h5py.File('somefile.mat','r') data = f.get('data/variable1') data = np.array(data) # For converting to a NumPy arrayUse the mat4py Module to Read mat Files in Python
This module has functions that allow us to write and read data to and from MATLAB files.
The loadmat() function reads MATLAB files and stores them in basic Python structures like a list or a dictionary and is similar to the loadmat() from scipy.io.
For example,
from mat4py import loadmat data = loadmat('example.mat')Use the matlab.engine Module to Read mat Files in Python
For users who already have MATLAB can use the matlab.engine which is provided by MathWorks itself. It has a lot of functionality, which extends to more than just reading and writing “.mat” files.
The following code shows how to read MATLAB files using this method.
import matlab.engine eng = matlab.engine.start_matlab() content = eng.load("example.mat", nargout=1)Write for us
DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.