在python中可以使用scipy.io中的函数loadmat()读取mat文件,函数savemat保存文件。
1、读取文件
如上例:
1234567
#coding:UTF-8 import scipy.io as scio dataFile = 'E://data.mat'data = scio.loadmat(dataFile)
注意,读取出来的data是字典格式,可以通过函数type(data)查看。
1
print type(data)
结果显示
1
<type 'dict'>
找到mat文件中的矩阵:
1
print data['A']
结果显示
[[ 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0.36470588 0.90196078 0.99215686 0.99607843 0.99215686 0.99215686
0.78431373 0.0627451 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。。
0.94117647 0.22745098 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.30196078
。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.]]
格式为:
<type 'numpy.ndarray'>
即为numpy中的矩阵格式。
"""
Created on Sun Nov 29 16:40:18 2020
本工具主要用于mat文件的读取(matlab-v7.3格式)
主要分为3个部分:1 常规mat中的变量
2 mat文件中的cell内部数据读取
3 mat文件中的struct数据读取
@author: ZXY
"""
"""
1 常规mat中的变量
"""
import h5py
b=[]
#首先用h5py读取mat文件,并找到对应的struct 位置。
data = h5py.File("./1.mat",'r')
ecg=data["ecg"].value
"""
2 mat文件中的cell内部数据读取
"""
import h5py
b=[]
#首先用h5py读取mat文件,并找到对应的struct 位置。
data = h5py.File("./2.mat",'r')
zx1=data["ecg_all"]#找到struct的顶部
for i in range(zx1.shape[0]):
ecg=data[zx1[i][0]].value
"""
3 mat文件中的struct数据读取
"""
import h5py
b=[]
#首先用h5py读取mat文件,并找到对应的struct 位置。
data = h5py.File("./3.mat",'r')
zx1=data["ecgpart"]#找到struct的顶部
test = data['ecgpart/data']#找到struct中要提取的子集
for i in test[:,0]:
ecg=zx1[i].value
若文件位于同一文件夹下的data文件夹中data.mat
import scipy.io as scio
import pandas as pd
data = scio.loadmat('./data/data.mat')
df=pd.DataFrame(['dat'])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)