【Matlab/Python】Matlab和Python之间的数据传输

来源:互联网 发布:言论自由 知乎 编辑:程序博客网 时间:2024/06/11 11:34

很多时候,我们需要把matlab里的数据保存下来,然后用python来处理。

方法一(.mat格式)

直接将matlab的数据存储成.mat格式,然后在python中利用scipy.io中的loadmat函数来读取

import scipy.io     as siodata = sio.loadmat(...)

方法二(.h5格式)

当要存储的.mat文件比较大时,matlab中需要用save -v7.3才能存储。但是利用方法一在python中读取时,会不支持。可以用以下方法读取

with h5py.File("mydata.mat") as f:    data = f["mydata"][:]

可以正确读取数据,但是数组维度会倒过来,即本来是(2,3,4,5),读出来会是(5,4,3,2)
但是只有.mat数据用save -v7.3保存时,才能用此方法读取,否则,应用方法一读取
所以可以在matlab中将数据保存成.h5格式,统一按照方法二来读取
matlab中存储.h5格式用如下方法

h5create('data.h5','/data',[2,3,4,5]);data = rand(2,3,4,5)h5write('data.h5','/data',data)

但是用python读取时,矩阵维度仍然会倒过来

原创粉丝点击