详解如何在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的内存泄漏及gc模块的使用分析
Jul 16 Python
用Python编写简单的定时器的方法
May 02 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
Python if语句知识点用法总结
Jun 10 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
如何在django中添加日志功能
Feb 06 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
python 操作excel表格的方法
Dec 05 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
处理单名多值表单的详解
2013/06/08 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python中input和raw_input的一点区别
2014/10/21 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
如何基于python实现归一化处理
2020/01/20 Python
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
创立科技Java面试题
2015/11/29 面试题
前台文员我鉴定
2014/01/12 职场文书
大家检讨书5000字
2014/02/03 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
降消项目实施方案
2014/03/30 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
新学期标语
2014/06/30 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
党员查摆剖析材料
2014/10/10 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
Python jiaba库的使用详解
2021/11/23 Python
nginx搭建NFS网络文件系统
2022/04/14 Servers