【发布时间】:2011-06-16 07:13:58
【问题描述】:
我是一个 Matlab 用户,不熟悉 Python。我想将 Matlab 中的字符串单元数组写入 Mat 文件,并使用 Python(可能是 scipy.io.loadmat)将此 Mat 文件加载到一些类似的类型(例如字符串列表或字符串元组)中。但是 loadmat 将内容读入数组,我不确定如何将其转换为列表。我尝试了无法按预期工作的“tolist”函数(我对 Python 数组或 numpy 数组了解甚少)。例如:
Matlab 代码:
cell_of_strings = {'thank', 'you', 'very', 'much'};
save('my.mat', 'cell_of_strings');
Python 代码:
matdata=loadmat('my.mat', chars_as_strings=1, matlab_compatible=1);
array_of_strings = matdata['cell_of_strings']
那么,变量array_of_strings就是:
array([[[[u't' u'h' u'a' u'n' u'k']], [[u'y' u'o' u'u']],
[[u'v' u'e' u'r' u'y']], [[u'm' u'u' u'c' u'h']]]], dtype=object)
我不知道如何将此 array_of_strings 转换为 Python 列表或元组,使其看起来像
list_of_strings = ['thank', 'you', 'very', 'much'];
我不熟悉 Python 或 numpy 中的数组对象。您的帮助将不胜感激。
【问题讨论】:
标签: python arrays string matlab mat-file