详解如何在python中读写和存储matlab的数据文件(*.mat)


Posted in Python onFebruary 24, 2018

背景

在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用python来生成需要的lmdb文件以及做test产生结果。所以某些matlab从图片处理得到的label信息都会以.mat文件供python读取,同时也python产生的结果信息也需要matlab来做进一步的处理(当然也可以使用txt,不嫌麻烦自己处理结构信息)。

介绍

matlab和python间的数据传输一般是基于matlab的文件格式.mat,python中numpy和scipy提供了一些函数,可以很好的对.mat文件的数据进行读写和处理。

在这里numpy作用是提供Array功能映射matlab里面的Matrix,而scipy提供了两个函数loadmat和savemat来读写.mat文件。

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

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})

示例2

import scipy.io as sio
import numpy as np

###下面是讲解python怎么读取.mat文件以及怎么处理得到的结果###
load_fn = 'xxx.mat'
load_data = sio.loadmat(load_fn)
load_matrix = load_data['matrix'] #假设文件中存有字符变量是matrix,例如matlab中save(load_fn, 'matrix');当然可以保存多个save(load_fn, 'matrix_x', 'matrix_y', ...);
load_matrix_row = load_matrix[0] #取了当时matlab中matrix的第一行,python中数组行排列

###下面是讲解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}) #同理,只是存入了两个不同的变量供

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python装饰器使用方法实例
Nov 21 Python
python进阶教程之词典、字典、dict
Aug 29 Python
python实现按任意键继续执行程序
Dec 30 Python
Python中标准模块importlib详解
Apr 16 Python
python requests 使用快速入门
Aug 31 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
python之yield和Generator深入解析
Sep 18 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 Python
使用python和pygame绘制繁花曲线的方法
Feb 24 #Python
python3操作微信itchat实现发送图片
Feb 24 #Python
python自动12306抢票软件实现代码
Feb 24 #Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 #Python
python模仿网页版微信发送消息功能
Feb 24 #Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 #Python
python opencv之分水岭算法示例
Feb 24 #Python
You might like
php中文件上传的安全问题
2006/10/09 PHP
PHP也可以?成Shell Script
2006/10/09 PHP
GD输出汉字的函数的分析
2006/10/09 PHP
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
PHP中each与list用法分析
2016/01/08 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
javascript入门基础之私有变量
2010/02/23 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
JS实现留言板功能
2017/06/17 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
详解node.js 事件循环
2020/07/22 Javascript
详解Python中for循环的使用
2015/04/14 Python
python实现决策树
2017/12/21 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python进行文件对比的方法
2018/12/24 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
css sprite简单实例
2016/05/23 HTML / CSS
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
C语言笔试题回忆
2015/04/02 面试题
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
高中生自我评语大全
2014/01/19 职场文书
励志演讲稿200字
2014/08/21 职场文书
大学生个人学习总结
2015/02/15 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
2016年猴年新春致辞
2015/08/01 职场文书