美文网首页python杂
python学习-python到matlab数据的传输

python学习-python到matlab数据的传输

作者: scarlett的小本子 | 来源:发表于2017-10-18 17:25 被阅读0次

    1、.mat文件

    matlab和python间的数据传输一般是基于matlab的文件格式.mat,python中numpy和scipy提供了一些函数,可以很好的对.mat文件的数据进行读写和处理。在这里numpy作用是提供Array功能映射matlab里面的Matrix,而scipy提供了两个函数loadmat和savemat来读写.mat文件。

    # python 读写.mat文件

    import scipy.io as sio

    import numpy as np

    # python读取.mat文件

    load_fn = 'xxx.mat'

    load_data = sio.loadmat(load_fn)

    # python 保存.mat文件

    save_fn = 'xxx.mat'

    save_array = np.array([1,2,3,4])

    sio.savemat(save_fn,{'array':save_array})

    save_array_x = np.array([1,2,3,4])

    save_array_y = np.array([5,6,7,8])

    sio.savemat(save_fn, {'array_x': save_array_x, 'array_x': save_array_x})

    python写好.mat文件,matlab里面直接读入.mat文件。但是针对于数量大的数据,.mat文件无法存储,建议使用.h5文件。

    2、.h5文件

    python写入.h5文件

    # python写入.h5文件,matlab读入.h5文件

    # python写.h5文件

    import h5py

    import cPickle as pickle

    import sys

    import numpy as np

    if __name__ == "__main__":

    matrix = np.array([1,2,3,4])

    f = h5py.File('data.h5','w')

    f['matrix'] = matrix

    f.close()


    # matlab读取.h5文件

    matrix = h5read('data.h5','/matrix');

    python存储的.h5文件中的矩阵matlab读取时候矩阵维度会倒转(在python中使用matrix.transpose((维度1,维度2,...,维度n))命令先进行翻转再写入,matlab读取的时候就是正常维度)。

    PS:图片传输的时候,uint8图片数据传到matlab里会变成double类型数据。

    相关文章

      网友评论

        本文标题:python学习-python到matlab数据的传输

        本文链接:https://www.haomeiwen.com/subject/yimsuxtx.html