天天看點

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類型資料。