python讀取mat文件生成h5文件的實現(xiàn)
讀取mat文件生成h5文件
1. Matlab生成 .mat 文件
p = rand(1,10);
q = ones(10);
save('pqfile.mat','p','q')當(dāng)用python讀取 pqfile.mat 這個文件時,可以通過get§, get(q) 分別獲得p、q的值。
2. 讀取 .mat 文件
import scipy.io as io
data = io.loadmat(path)
data = data.get('KeyValue')導(dǎo)入的mat文件為dict類型,在load之后需要用get函數(shù)將字典內(nèi)的內(nèi)容讀出來才可以進(jìn)行下一步的處理。
讀取mat文件 基于h5py庫
今天有個任務(wù)需要讀取mat文件中的數(shù)據(jù),由于版本的關(guān)系,無法使用 sio.loadmat 讀取數(shù)據(jù)
最后使用的方案是 h5py,下面我將記錄下,我使用h5py庫讀取mat中兩種不同數(shù)據(jù)結(jié)構(gòu)的方法,這個可浪費(fèi)了我不少時間,特別是第一種數(shù)據(jù)結(jié)構(gòu),嵌套多了一層,在debug的時候,只能看到他的類型是h5py.h5r.Reference,沒有其他有價值的內(nèi)容,幸好在網(wǎng)上得到啟發(fā),然后成功地讀取了數(shù)據(jù)。
h5py庫的api 地址 https://docs.h5py.org/en/stable/quick.html 有不懂可以多查閱哦!收獲還挺大的!
兩種數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)1
fixcell 數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜

一個list里面又嵌套了一個多維數(shù)據(jù)或者數(shù)據(jù)矩陣

數(shù)據(jù)結(jié)構(gòu)2
sizeData數(shù)據(jù)結(jié)構(gòu)相對簡單

讀取代碼
import h5py fix_data_file_location_path = r"E:\1dataset\salObj\datasets\fixations\xxxx.mat" fix_data_file_size_path = r"E:\1dataset\salObj\datasets\fixations\xxxx.mat" fixdata_loca_file = h5py.File(fix_data_file_location_path,"r") fixdata_size_file = h5py.File(fix_data_file_size_path,"r") # 第一種數(shù)據(jù)結(jié)構(gòu)的讀取代碼,這個例子只是讀取了第一個cell中的部分?jǐn)?shù)據(jù) fixCell = fixdata_loca_file["fixCell"] # 獲取第一個cell fixCell_key = fixCell[0][0] # 根據(jù)cell作為Key 從fixdata_loca_file中取值 obj = fixdata_loca_file[fixCell_key] print(obj[2][:]) # 第二種數(shù)據(jù)結(jié)構(gòu)的讀取代碼 sizeData = fixdata_size_file["sizeData"] # 獲取第一個cell sizeData[0][6] 0代表的是第一列 6代表的是第六行 height = sizeData[0][6] weight = sizeData[1][6] print(height," ",weight)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
超簡單的scrapy實現(xiàn)ip動態(tài)代理與更換ip的方法實現(xiàn)
這篇文章主要介紹了超簡單的scrapy實現(xiàn)ip動態(tài)代理與更換ip的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python通過pymysql調(diào)用MySQL進(jìn)行增刪改移查
這篇文章主要介紹了Python通過pymysql調(diào)用MySQL,從而實現(xiàn)數(shù)據(jù)的增刪改移查功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12
Django數(shù)據(jù)庫(SQlite)基本入門使用教程
django有默認(rèn)自帶的數(shù)據(jù)庫,當(dāng)然也可以用其他的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Django數(shù)據(jù)庫(SQlite)基本入門使用教程的相關(guān)資料,需要的朋友可以參考下2022-07-07
對python中執(zhí)行DOS命令的3種方法總結(jié)
今天小編就為大家分享一篇對python中執(zhí)行DOS命令的3種方法總結(jié),具有很好的參考價值,希望對大家有所幫助一起。一起跟隨小編過來看看吧2018-05-05
把django中admin后臺界面的英文修改為中文顯示的方法
今天小編就為大家分享一篇把django中admin后臺界面的英文修改為中文顯示的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python3中_from...import...與import?...之間的區(qū)別詳解(包/模塊)
Python編碼第一步是導(dǎo)入模塊,有時候用import?***有時候用from...import,下面這篇文章主要給大家介紹了關(guān)于python3中_from...import...與import?...之間區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-08-08

