Skip to content
Advertisement

How to save Python 1D, 2D or 3D NumpPy array into MATLAB .mat

Python’s SciPy package has a function that saves Python variable into MATLAB’s .mat file https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html However, the documentation lacks examples, and I don’t know what is the dictionary of variables it wants as an input.

Say I have a 2D NumPy array A and a 3D NumPy array B, how do I save them into a .mat file called my_arrays.mat?

Can I save multiple variables in .mat or do I need a file to each variable?

How to read .mat files into Python and how do I know to reach variables they have been loaded?

Advertisement

Answer

Examples for saving and loading

import scipy.io as sio

# dummy data
A = np.random.randint(0,10,100)
B = np.random.randint(0,10,100)

# collect arrays in dictionary
savedict = {
    'A' : A,
    'B' : B,
}

# save to disk
sio.savemat('my_arrays.mat', savedict)

#load from disk
data = sio.loadmat('my_arrays.mat')

# alternative way to load from disk:
data = {}
sio.loadmat('my_arrays.mat', mdict=data)
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement