读、写.mat文件

scipy库

使用sicpy.io即可.sicpy.io提供了两个函数loadmat和savemat,非常方便.

以前也有一些开源的库(pymat和pymat2等)来做这个事,

不过自从有了numpy和scipy以后,这些库都被抛弃了.

下面是一个简单的测试程序,具体的函数用法可以看帮助文档:

取出数据的时候,从mat文件读出来的是dict类型的数据,我们只需要写入他的key值就可以取出相应的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import scipy.io as sio  
import matplotlib.pyplot as plt
import numpy as np

# matlab文件名
matfn=u'E:/python/测试程序/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})

mat4py库:

功能: 将Matlab 数据导入为基本的Python数据类型。矩阵是以行为组的存储方式(使用列表的列表)。 Matlab结构体Struct和元胞Cell 使用Python的词典表示。

1
2
3
4
import mat4py  
student1 = mat4py.loadmat('student.mat')
student1 = student1['student']
print type(student1) #dict
------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道