Save Python List to MAT File (R2015b)
17 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 =
3
>> save('C:\Program Files\HeavyOilToolbox\jobFileList.mat','-v7.3','jobFileList')
>> load('C:\Program Files\HeavyOilToolbox\jobFileList.mat','jobFileList')
>> jobFileList.length()
ans =
0
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
py.numpy.save('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?
Réponses (2)
Robert Snoeberger
le 29 Sep 2017
"Saving (serializing) Python objects into a MAT-file" is listed as a limitation in the documentation [1].
0 commentaires
Divyendu Narayan
le 27 Fév 2018
You can overcome this limitation by using scipy.io https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.io.savemat.html
Below link has answered this: https://stackoverflow.com/questions/9232751/saving-and-loading-python-dict-with-savemat-results-in-error
0 commentaires
Voir également
Catégories
En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!