詳解如何在python中讀寫和存儲(chǔ)matlab的數(shù)據(jù)文件(*.mat)
背景
在做deeplearning過(guò)程中,使用caffe的框架,一般使用matlab來(lái)處理圖片(matlab處理圖片相對(duì)簡(jiǎn)單,高效),用python來(lái)生成需要的lmdb文件以及做test產(chǎn)生結(jié)果。所以某些matlab從圖片處理得到的label信息都會(huì)以.mat文件供python讀取,同時(shí)也python產(chǎn)生的結(jié)果信息也需要matlab來(lái)做進(jìn)一步的處理(當(dāng)然也可以使用txt,不嫌麻煩自己處理結(jié)構(gòu)信息)。
介紹
matlab和python間的數(shù)據(jù)傳輸一般是基于matlab的文件格式.mat,python中numpy和scipy提供了一些函數(shù),可以很好的對(duì).mat文件的數(shù)據(jù)進(jìn)行讀寫和處理。
在這里numpy作用是提供Array功能映射matlab里面的Matrix,而scipy提供了兩個(gè)函數(shù)loadmat和savemat來(lái)讀寫.mat文件。
下面是一個(gè)簡(jiǎn)單的測(cè)試程序,具體的函數(shù)用法可以看幫助文檔:
import scipy.io as sio
import matplotlib.pyplot as plt
import numpy as np
#matlab文件名
matfn=u'E:/python/測(cè)試程序/162250671_162251656_1244.mat'
data=sio.loadmat(matfn)
plt.close('all')
xi=data['xi']
yi=data['yi']
ui=data['ui']
vi=data['vi']
plt.figure(1)
plt.quiver( xi[::5,::5],yi[::5,::5],ui[::5,::5],vi[::5,::5])
plt.figure(2)
plt.contourf(xi,yi,ui)
plt.show()
sio.savemat('saveddata.mat', {'xi': xi,'yi': yi,'ui': ui,'vi': vi})
示例2
import scipy.io as sio
import numpy as np
###下面是講解python怎么讀取.mat文件以及怎么處理得到的結(jié)果###
load_fn = 'xxx.mat'
load_data = sio.loadmat(load_fn)
load_matrix = load_data['matrix'] #假設(shè)文件中存有字符變量是matrix,例如matlab中save(load_fn, 'matrix');當(dāng)然可以保存多個(gè)save(load_fn, 'matrix_x', 'matrix_y', ...);
load_matrix_row = load_matrix[0] #取了當(dāng)時(shí)matlab中matrix的第一行,python中數(shù)組行排列
###下面是講解python怎么保存.mat文件供matlab程序使用###
save_fn = 'xxx.mat'
save_array = np.array([1,2,3,4])
sio.savemat(save_fn, {'array': save_array}) #和上面的一樣,存在了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}) #同理,只是存入了兩個(gè)不同的變量供
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pytorch中的torch.nn.Conv2d()函數(shù)圖文詳解
這篇文章主要給大家介紹了關(guān)于pytorch中torch.nn.Conv2d()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02
解決python ogr shp字段寫入中文亂碼的問(wèn)題
今天小編就為大家分享一篇解決python ogr shp字段寫入中文亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
python爬蟲(chóng)豆瓣網(wǎng)的模擬登錄實(shí)現(xiàn)
這篇文章主要介紹了python爬蟲(chóng)豆瓣網(wǎng)的模擬登錄實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python中seaborn庫(kù)之countplot的數(shù)據(jù)可視化使用
在Python數(shù)據(jù)可視化中,seaborn較好的提供了圖形的一些可視化功效。本文詳細(xì)的介紹了Python中seaborn庫(kù)之countplot的數(shù)據(jù)可視化使用,感興趣的可以了解一下2021-06-06
深入淺析Python科學(xué)計(jì)算庫(kù)Scipy及安裝步驟
這篇文章主要介紹了Python科學(xué)計(jì)算庫(kù)—Scipy的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
python logging 重復(fù)寫日志問(wèn)題解決辦法詳解
這篇文章主要介紹了python logging 重復(fù)寫日志問(wèn)題解決辦法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Python實(shí)現(xiàn)定制自動(dòng)化業(yè)務(wù)流量報(bào)表周報(bào)功能【XlsxWriter模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)定制自動(dòng)化業(yè)務(wù)流量報(bào)表周報(bào)功能,結(jié)合實(shí)例形式分析了Python基于XlsxWriter模塊操作xlsx文件生成報(bào)表圖的相關(guān)操作技巧,需要的朋友可以參考下2019-03-03

