Save Python List to MAT File (R2015b)

32 ビュー (過去 30 日間)
Peter Cook
Peter Cook 2017 年 9 月 28 日
回答済み: Divyendu Narayan 2018 年 2 月 27 日
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 件のコメント
Peter Cook
Peter Cook 2017 年 9 月 28 日
I forgot to mention, this behavior seems independent of the -v7.3 flag passed to save().


回答 (2 件)

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

Divyendu Narayan
Divyendu Narayan 2018 年 2 月 27 日
You can overcome this limitation by using
Below link has answered this:


Help Center および File ExchangeCall Python from MATLAB についてさらに検索


Community Treasure Hunt

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

Start Hunting!

Translated by