如何在Python中将Matlab生成的.mat格式文件转换为.csv格式
解决方法
你可以通过两种常用方案实现.mat矩阵转CSV,可根据后续使用需求选择:
方案1:使用NumPy实现(轻量快捷)
无需额外安装依赖,适合仅需要转存文件的场景,代码如下:
import scipy.io import numpy as np # 读取.mat文件 mat = scipy.io.loadmat('u_x.mat') # 提取目标2×8638矩阵 target_array = mat['u_x'] # 保存为csv文件 # delimiter指定分隔符为逗号,fmt指定数值保留10位小数,可根据需求调整精度 np.savetxt('u_x_output.csv', target_array, delimiter=',', fmt='%.10f')
如果需要将矩阵转换为8638行2列的常规样本-特征结构(更适配大部分后续数据处理逻辑),只需在数组后加转置符号.T,还可自定义表头:
# 转置后保存,带自定义表头 np.savetxt('u_x_transposed.csv', target_array.T, delimiter=',', fmt='%.10f', header='x轴数值,y轴数值', comments='')
comments=''参数用于避免NumPy默认给表头添加#前缀。
方案2:使用Pandas实现(灵活适配后续处理)
如果后续还需要对数据做清洗、计算、统计等操作,更推荐用Pandas处理:
import scipy.io import pandas as pd # 读取.mat文件并提取目标矩阵 mat = scipy.io.loadmat('u_x.mat') target_array = mat['u_x'] # 转为DataFrame结构,此处示例为转置后带表头的常用结构 df = pd.DataFrame(target_array.T, columns=['自变量','响应值']) # 保存为csv,index=False表示不导出默认行索引 df.to_csv('u_x_pandas_output.csv', index=False)
内容的提问来源于stack exchange,提问作者user13053456
相关产品推荐
相关产品推荐

