天天看点

matlab网络数据传输,python学习-python到matlab数据的传输

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类型数据。