matpython_[mcj]使用Matlab/Python合并mat文件并存为mat
關(guān)聯(lián)問題:
[mcj]使用Python讀取mat文件并存為excel
關(guān)聯(lián)問題: 因工作需要,需要將.mat文件存到excel中,基本思想就是,先讀取mat文件,然后讀取mat的索引頭,將該索引的數(shù)據(jù)存為list,然后把該list存到excel中去。 讀取mat: im...
時間:2019/7/2人氣:827評論:10
在關(guān)聯(lián)問題中,我們講過如何利用python將mat文件存為excel,但是excel有個問題,那就是最多存儲255列數(shù)據(jù),當(dāng)我們數(shù)據(jù)很多的時候怎么辦呢?
在這里,我選擇mat文件。
應(yīng)用需求:
在這里,我有多個mat文件,每個mat文件都只有一行[1×4096]的數(shù)據(jù),現(xiàn)在我想把這些mat文件合并起來。
應(yīng)用分析:
根據(jù)前面我們知道,合并這些mat文件不能再存到excel里了,只能存入mat中。
編程實現(xiàn):
這里以合并兩個mat文件為例,其他多個同理,只需要for一下即可。
首先,讀取mat文件并加載數(shù)據(jù)
import scipy.io as scio
import numpy as np
dataFile = 'mat\BigBuckBunny05.mat'
dataFile2 = 'mat\BigBuckBunny06.mat'
data = scio.loadmat(dataFile)
data = data['BigBuckBunny05']
data2 = scio.loadmat(dataFile2)
data2 = data2['BigBuckBunny06']
1
2
3
4
5
6
7
8
importscipy.ioasscio
importnumpyasnp
dataFile='mat\BigBuckBunny05.mat'
dataFile2='mat\BigBuckBunny06.mat'
data=scio.loadmat(dataFile)
data=data['BigBuckBunny05']
data2=scio.loadmat(dataFile2)
data2=data2['BigBuckBunny06']
然后利用numpy將data和data2按行合并
data = np.vstack((data,data2))
1
data=np.vstack((data,data2))
最后將data保存為mat字典即可。
scio.savemat('filename.mat', mdict={'filename': data})
1
scio.savemat('filename.mat',mdict={'filename':data})
Matlab版:
其實matlab更加簡單,這是MATLAB完整程序,包含了循環(huán)讀取操作。
溫馨提示: 此處內(nèi)容需要 評論本文 后 刷新本頁 才能查看!
注意事項:
這里關(guān)鍵是如何找到mat的字典頭
我們以上面的例子為例,我們是如何知道m(xù)at中的索引是BigBuckBunny05呢?如果這個文件是自己建的,當(dāng)然沒問題,如果是直接copy來的,按一下步驟查找索引:
首先讀取mat文件,然后在下面設(shè)置斷點:
運行debug,查看data的數(shù)據(jù)結(jié)構(gòu):
這里可以看到,BigBuckBunny05即為ndarray的索引。可以打開看看
確認之后即可讀取該索引的數(shù)據(jù)。
本文最后更新于2019年11月11日,已超過 1 年沒有更新,如果文章內(nèi)容或圖片資源失效,請留言反饋,我們會及時處理,謝謝!
總結(jié)
以上是生活随笔為你收集整理的matpython_[mcj]使用Matlab/Python合并mat文件并存为mat的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: element ui登录界面_Vue和E
- 下一篇: 打包python程序发布_Python代