3

看起来 savemat 正在生成.mat包含中文字符时 MATLAB 无法打开的文件,但loadmat能够:

$ python -c 'from scipy.io import *; savemat("tmp.mat", {"test": "你好"}); print(loadmat("tmp.mat")["test"])' && matlab -nodesktop -r 'load tmp; exit'
['你好']

To get started, type one of these: helpwin, helpdesk, or demo.
For product information, visit www.mathworks.com.

Error using load
Can't read file /home/tmp.mat.

任何想法如何更改savemat以输出 MATLAB 可以打开的内容或更改 MATLAB 设置以便我可以读取文件?

4

1 回答 1

0

基于文档,savemat并且save我相信savemat生成.mat的文件格式较旧(MATLAB 称为-v6,不支持 Unicode(在 中引入-v7)。

.mat如果您从HDF5savemat编写器(如h5pyhd5storage. 或者,您始终可以将字符串存储为字节数组并稍后解释它们。

另请参阅:在 python 中创建 v7.3 的 .mat 文件在 HDF5 中的字符串

于 2018-10-08T13:08:26.850 回答