使用Python实现.mat文件转换、读取

news2025/1/12 12:19:11

目录

一、前言

二、将excel文件转换为mat文件

三、读取mat文件并进行可视化

四、将mat文件转换为excel文件 


一、前言

有时候我们拿到一个数据文件不是excel或者csv的怎么办呢?比如:你可恶的合作伙伴测实验数据时,用MATLAB丢给你一个mat矩阵文件时,该怎么办呢?别慌,数产小黑娃(头像虽黑,但本人不黑,欢迎打扰,谢谢支持!!!)带你解决这个问题!学完本篇文章后,你就可以将矩阵文件与表格文件实现互转了。

二、将excel文件转换为mat文件

我使用了一个openpyxl库来读取Excel文件。首先,我读取了一个Excel文件并选择活动工作表。然后,我使用了一个iter_rows()函数逐行获取数据,并将每一行添加到一个列表中。最后,我使用了一个scipy.io.savemat()函数将转换后的数据保存为MAT文件,并为矩阵取了一个名为“data”的变量名。

# 读取Excel文件
excel_file = '6-30测试.xlsx'
workbook = openpyxl.load_workbook(excel_file)

# 选择工作表
sheet = workbook.active

# 获取数据
data = []
for row in sheet.iter_rows(values_only=True):
    data.append(row)

# 将数据保存为MAT文件
mat_file = '6-30测试.mat'
sio.savemat(mat_file, {'data': data})

三、读取mat文件并进行可视化

我使用了loadmat函数来读取mat矩阵,并调用matplotlib函数进行画图可视化。

# 读取mat文件
mat_file = '6-30测试.mat'
data = sio.loadmat(mat_file)

# 提取数据
data_array = data['data']

# 可视化数据
plt.plot(data_array)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('MAT Data Visualization')
plt.show()

 进行mat矩阵可视化:

四、将mat文件转换为excel文件 

我们使用了Python中的scipypandas库进行操作。以下实现了如何将MAT文件转换为Excel文件:

import scipy.io as sio
import pandas as pd

# 读取MAT文件
mat_file = '6-30测试.mat'
data = sio.loadmat(mat_file)

# 提取数据
data_array = data['data']

# 转换为DataFrame
df = pd.DataFrame(data_array)

# 保存为Excel文件
excel_file = 'output.xlsx'
df.to_excel(excel_file, index=False)

使用DataFrame函数将mat矩阵转换成excel文件时,Excel文件中会包含表头,如果你希望保留原始的数据结构和没有表头的格式,可以使用openpyxl库来手动创建Excel文件并写入数据。这个就留给你们自主思考了。

所有生成的文件如下所示: 

当然之前还写了一个它的姊妹篇《如何用matlab实现矩阵与mat格式、xlsx格式文件互转》,当我们利用matlab去处理我们的实验数据时,常常需要读取mat格式、xlsx格式文件,而且有时候我们又将利用Python去做后续工作,这时候我们就迫切需要了解矩阵与mat格式、xlsx格式文件在两个平台上如何实现互相转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【mac切换go不同版本】

1.需求是:mac本机想要同时拥有几个版本的go,并可以方便切换 第一种brew link切换失败,手动切换成功 第二种gvm方法失败 第三种docker成功 (别看前面啰里八嗦,我只是记录一下,请直接跳到第三个) …

【IMX6ULL驱动开发学习】14.Linux驱动开发 - GPIO中断(设备树 + GPIO子系统)

代码自取【14.key_tree_pinctrl_gpios_interrupt】: https://gitee.com/chenshao777/imx6-ull_-drivers 主要接口函数: 1. of_gpio_count(获得GPIO的数量) static inline int of_gpio_count(struct device_node *np)2. kzalloc…

uniapp项目或者vue项目 封装弹框组件

baseDialog组件代码: <template><view class"base-dialog" v-if"show"><view class"mask"></view><view class"Popmenu" :style"{ width }"><view class"header">{{ title …

怎么做好技术团队规划

一、做规划包括哪些东西 业务结果&#xff1a; 直白说就是业务层面的战绩&#xff0c;你团队打造了一个公司 GMV 占比超过 50%的商城&#xff0c;或者支撑了某个快速发展业务&#xff0c;这些都是业务结果&#xff0c;用业务数字来说话。 技术创新&#xff1a; 由技术人员发起…

【DBA专属】mysql-------->>>MMM高可用集群架构

Mysql---MMM高可用集群架构 目录 MMM安装部署 环境配置&#xff1a;&#xff08;所有主机配置&#xff09; 1、主机信息 2、关闭防火墙 3、同步时区 4、配置主机解析文件 5、配置ssh免密登录 6、所有机器安装epel源 数据库配置&#xff1a; 【所有数据库均做的配置】…

蜣螂优化算法(DBO)优化VMD参数,最小包络熵、样本熵、信息熵、排列熵(适应度函数可自行选择,一键修改)包含MATLAB源代码

蜣螂优化算法是华大学沈波教授团队&#xff0c;继麻雀搜索算法(Sparrow Search Algorithm&#xff0c;SSA&#xff09;之后&#xff0c;于2022年11月27日又提出的一种全新的群体智能优化算法。已有很多学者将算法用于实际工程问题中&#xff0c;今天咱们用蜣螂优化算法优化一下…

技术干货——Selenium Python使用技巧(二)

目录 进行自动跨浏览器测试 使用CSS定位器 WebElement的HTML源代码 鼠标悬停 关闭标签而不是浏览器 处理下拉菜单 复选框处理 通过CSS选择器选择元素 总结&#xff1a; 进行自动跨浏览器测试 您可能需要在多种情况下针对不同的浏览器&#xff08;例如Firefox&#xff…

软件测试工程师的工作内容?告诉你们什么是真正的测试工程师

目录 前言 1.何为软件测试工程师&#xff1f; 2.软件测试工程师的职责&#xff1f; 3.为什么要做软件测试&#xff1f; 4.软件测试的前途如何&#xff1f; 5.工具和思维谁更重要&#xff1f; 6.测试和开发相差大吗&#xff1f; 7.成为测试工程师的必备条件 8.测试的分…

shiro和redis一起使用

Shiro 缓存配置 当我们进行授权操作时,每次都会从数据库查询用户权限信息,为了提高授权性能,可以将用户权限信息查询出来以后进行缓存,下次授权时从缓存取数据即可。 Shiro 中内置缓存应用实现,其步骤如下: 第一步:在 SpringShiroConfig 中配置缓存 Bean 对象(Shiro 框架提供)…

Talk | 阿姆斯特丹大学博士生胡涛:计算机视觉中的标签效率学习

本期为TechBeat人工智能社区第509期线上Talk&#xff01; 北京时间6月29日(周四)20:00&#xff0c;阿姆斯特丹大学博士生—胡涛的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “计算机视觉中的标签效率学习”&#xff0c;届时将从生成式学习、数…

Drools用户手册翻译——第二章 入门(上)

因为篇幅原因&#xff0c;所以分为上下两个部分&#xff0c;主要就是通过一个交通违章项目的例子&#xff0c;带你先粗略感受一下决策模型的使用流程&#xff0c;总体来说有详细&#xff0c;也有没说清的地方&#xff0c;如果想要了解一下决策模型&#xff0c;可以进来了解一下…

试用有奖:在线试用stable diffusion 模型生成优质人物好图

一、活动介绍 InsCode是一个集成了在线IDE、在线AI编程、在线算力租赁、在线项目部署以及在线SD 模型使用的综合代码开发平台。不论你是初级软件工程师&#xff0c;还是AI大模型爱好者&#xff0c;InsCode都能帮助你快速编写代码&#xff0c;运行项目。甚至在这里你还可以一键…

某平台登录之电话号码加密

抓包 POST /******/common/****** HTTP/1.1 Host: ****** Content-Type: application/json; charsetUTF-8 Host: ****** User-Agent: okhttp/3.14.9{"type":"login","apor":"******************"}加密 由于信息原因就不泄露了 此处只…

Linux系统编程:进程的创建、终止和替换

目录 一. 进程创建 1.1 fork函数的使用 1.2 fork函数的底层实现 1.3 子进程创建的写时拷贝问题 二. 进程的退出 2.1 进程退出的场景和方法 2.2 exit和_exit函数 三. 进程的等待 3.1 为什么要有进程等待 3.2 进程等待的方法 3.2.1 进程等待的相关函数 3.2.2 进程的阻…

JS知识点汇总(六)--作用域链this

1. 什么是作用域链&#xff1f; 作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 换句话说&#xff0c;作用域决定了代码区块中变量和其他资源的可见性 1. 作用域分类 一般将作用域分成&#x…

TDengine 发布 IoT 场景下 3.0 性能对比分析报告,全方位超越 InfluxDB TimescaleDB

6 月 26 日&#xff0c;涛思数据旗下时序数据库&#xff08;Time Series Database&#xff09; TDengine 正式发布 IoT 场景下 TDengine 3.0 性能对比分析报告&#xff0c;该报告在 IoT 场景下从数据写入、压缩和查询等维度&#xff0c;对比了 TDengine 与市场其他流行的时序数…

Linux系统安装QQ最新版

腾讯在2023-05-30更新了linux版的qq&#xff0c;这次界面终于不再复古&#xff0c;好看多了。 安装步骤&#xff1a; 1.进入官网&#xff0c;寻找合适的安装包下载 https://im.qq.com/linuxqq/index.shtml 选择跟自己计算机匹配的版本&#xff0c;一般都是X86&#xff0c;如…

VMware共享文件夹

当虚拟机需要使用宿主机里的文件时&#xff0c;就需要在虚拟机设置里添加共享文件夹&#xff0c;大概过程如下&#xff1a; 虚拟机设置&#xff1a; 在centos里&#xff0c;完成上述操作后会生成一个目录 /mnt/hgfs 宿主机里的文件就在这个目录里可以看到并使用了。

编译linux内核(二)

编译linux内核 1. 准备工作1.1 下载内核文件1.2 环境准备1.3 内核命名规则 2. 编译内核2.1 升级gcc2.2 make menuconfig其他报错2.3 配置选项2.4 编译内核2.5 安装模块2.6 安装内核2.7 验证内核 3. 制作内核文件3.1 创建磁盘文件3.2 磁盘分区3.3 将磁盘分区关联到/dev/loop7设备…

化学理论知识vr沉浸式教学软件推动立足“学生老师双主体”一体化的教学模式改革

VR虚拟仿真是基于虚拟现实、3D技术、计算机技术等搭建起来的一套具有数字化、智慧化的智能教学系统&#xff0c;它以学生学习为中心&#xff0c;探索学科内容&#xff0c;使用VR虚拟现实将学科内容以3D立体化形式呈现&#xff0c;培养学生的思维创新、实操技能。 VR虚拟仿真技术…