Clear Filters
Clear Filters

Save Python List to MAT File (R2015b)

25 views (last 30 days)
Peter Cook
Peter Cook on 28 Sep 2017
Answered: Divyendu Narayan on 27 Feb 2018
I've got a small apparent issue with using the python list datatype in MATLAB. If I save a py.list to a MAT file and then try to reload it, I get an empty list in the workspace.
In this example, I've got a list of lists I am trying to hash so I don't have to scan a drive every time I run the program.
>> jobFileList.length()
ans =
>> save('C:\Program Files\HeavyOilToolbox\jobFileList.mat','-v7.3','jobFileList')
>> load('C:\Program Files\HeavyOilToolbox\jobFileList.mat','jobFileList')
>> jobFileList.length()
ans =
Here's me trying to save a cell array of lists instead
>> jobFileListCell = cell(jobFileList)
jobFileListCell =
[1x65073 py.list] [1x574 py.list] [1x439 py.list]
>> save('C:\Program Files\HeavyOilToolbox\jobFileListCell.mat','-v7.3','jobFileListCell')
>> load('C:\Program Files\HeavyOilToolbox\jobFileListCell.mat','jobFileListCell')
>> jobFileListCell
jobFileListCell =
[1x0 py.list] [1x0 py.list] [1x0 py.list]
My current workaround is to use'C:\\Program Files\\HeavyOilToolbox\\jobFileList.npy',jobFileList)
jobFileList = py.numpy.load('C:\\Program Files\\HeavyOilToolbox\\jobFileList.npy')
jobFileList = py.list(jobFileList)
But I am hoping there is a solution in native MATLAB. Any insight?
  1 Comment
Peter Cook
Peter Cook on 28 Sep 2017
I forgot to mention, this behavior seems independent of the -v7.3 flag passed to save().

Sign in to comment.

Answers (2)

Robert Snoeberger
Robert Snoeberger on 29 Sep 2017
"Saving (serializing) Python objects into a MAT-file" is listed as a limitation in the documentation [1].

Divyendu Narayan
Divyendu Narayan on 27 Feb 2018
You can overcome this limitation by using
Below link has answered this:


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!