详解如何在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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python使用filetype精确判断文件类型
Jul 02 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
如何在python中实现随机选择
Nov 02 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
Python+unittest+requests 接口自动化测试框架搭建教程
Oct 09 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
python爬虫--selenium模块
Mar 31 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
php源码的使用方法讲解
2019/09/26 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
django从请求到响应的过程深入讲解
2018/08/01 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
python 监控logcat关键字功能
2020/09/04 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
Python实现简单猜数字游戏
2021/02/03 Python
西班牙手机之家:Phone House
2018/10/18 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
军校本科大学生自我评价
2014/01/14 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技