Python to MATLAB: exporting list of strings using scipy.io

喜欢而已 提交于 2019-12-01 02:46:11

You need to make my_list an array of numpy objects:

import scipy.io
import numpy as np
my_list = np.zeros((3,), dtype=np.object)
my_list[:] = ['abc', 'def', 'ghi']
scipy.io.savemat('test.mat', mdict={'my_list': my_list})

Then it will be saved in a cell format. There might be a better way of putting it into a np.object, but I took this way from the Scipy documentation.

It looks like the contents of the list are exported properly, they are just transposed and placed in a character array. You can easily convert it to the desired cell array of strings in MATLAB by transposing it and using CELLSTR, which places each row in a separate cell:

>> my_list = ['adg';'beh';'cfi'];  %# Your example
>> my_list = cellstr(my_list')    %'# A 3-by-1 cell array of strings

my_list = 

    'abc'
    'def'
    'ghi'

Granted, this doesn't address the more general issue of exporting data as a cell array from Python to MATLAB, but it should help with the specific problem you list above.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!