• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python 读写 Matlab Mat 格式数据的操作

    1. 非 matlab v7.3 files 读写

    import scipy.io as sio
    import numpy
    # matFile 读取
    matFile = 'matlabdata.mat'
    datas = sio.loadmat(matFile)
    # 加载 matFile 内的数据
    # 假设 mat 内保存的变量为 matlabdata
    matlabdata = datas['matlabdata']
    
    # matFile 写入
    save_matFile = 'save_matlabdata.mat'
    save_matlabdata = np.array([1,2,3,4,5])
    sio.savemat(save_matFile, {'array':save_matlabdata})

    2. matlab v7.3 files 读取

    如果 matlab 保存 data 时,采用的是 ‘-v7.3',scipy.io.loadmat函数加载数据会出现错误:

    File "/usr/local/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 64, in mat_reader_factory
    raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
    NotImplementedError: Please use HDF reader for matlab v7.3 files

    可以采用:

    import h5py
    with h5py.File('matlabdata.mat', 'r') as f:
        f.keys() # matlabdata.mat 中的变量名
    datas = h5py.File('matlabdata.mat')['matlabdata'].value

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

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

    方法一(.mat格式)

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

    import scipy.io     as sio
    data = 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读取时,矩阵维度仍然会倒过来

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 解决python3 json数据包含中文的读写问题
    • python基于Pandas读写MySQL数据库
    • python里读写excel等数据文件的6种常用方式(小结)
    • python读写数据读写csv文件(pandas用法)
    • Python web框架(django,flask)实现mysql数据库读写分离的示例
    • python读写excel数据--pandas详解
    上一篇:python3 hdf5文件 遍历代码
    下一篇:python基于tkinter实现gif录屏功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python 读写 Matlab Mat 格式数据的操作 Python,读写,Matlab,Mat,格式,