Matrix from Python to MATLAB

mlkyway3 picture mlkyway3 · Jul 8, 2009 · Viewed 62.7k times · Source

I'm working with Python and MATLAB right now and I have a 2D array in Python that I need to write to a file and then be able to read it into MATLAB as a matrix. Any ideas on how to do this?

Thanks!

Answer

ars picture ars · Jul 8, 2009

If you use numpy/scipy, you can use the scipy.io.savemat function:

import numpy, scipy.io

arr = numpy.arange(9) # 1d array of 9 numbers
arr = arr.reshape((3, 3))  # 2d array of 3x3

scipy.io.savemat('c:/tmp/arrdata.mat', mdict={'arr': arr})

Now, you can load this data into MATLAB using File -> Load Data. Select the file and the arr variable (a 3x3 matrix) will be available in your environment.

Note: I did this on scipy 0.7.0. (scipy 0.6 has savemat in the scipy.io.mio module.) See the latest documentation for more detail

EDIT: updated link thanks to @gnovice.