Save Python List to MAT File (R2015b)

31 visualizzazioni (ultimi 30 giorni)
Peter Cook
Peter Cook il 28 Set 2017
Risposto: Divyendu Narayan il 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 Commento
Peter Cook
Peter Cook il 28 Set 2017
I forgot to mention, this behavior seems independent of the -v7.3 flag passed to save().

Accedi per commentare.

Risposte (2)

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

Divyendu Narayan
Divyendu Narayan il 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!

Translated by