将matlab数据导出到python



我在matlab中的变量"a"中存储了一句"我不开心"。我想从matlab中提取数据到python中。就像我在python中写"a"一样,它应该显示存储在MATLAB中的整句话。是的,我想用gtts把这个句子转换成语音。

我试过了,这个:

from scipy.io import loadmat
test = loadmat('value.mat')

但它给出了错误:

MatReadWarning: Duplicate variable name "None" in stream - replacing 
previous with new Consider mio5.varmats_from_mat to split file into 
single variable files matfile_dict = MR.get_variables(variable_names)

我可以这样测试它,没有问题:

在matlab中:

>> a = ' hello mat file'
a =
hello mat file
>> filename = 'test.mat'
filename =
test.mat
>> save(filename)

然后在python中:

import scipy.io as scio
data = scio.loadmat('test.mat')
data
Out:
{'__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Tue Nov 27 10:20:58 2018',
'__version__': '1.0',
'__globals__': [],
'a': array([' hello mat file'], dtype='<U15'),
'filename': array(['test.mat'], dtype='<U8')}
data['a']
Out: array([' hello mat file'], dtype='<U15')

所以这里没有错误消息。

但是,请注意,在Matlab中,save默认情况下会将当前工作空间的所有内容保存在mat文件中。有没有可能,您创建了一些其他变量,这些变量可能是不受支持的类型?

只需显式保存测试变量a:即可进行检查

save(filename, 'a')

这会导致python中出现一个可导入的mat文件吗?

最新更新