如何将MATLAB格式的TXT文件数据导入Python?
将MATLAB格式的.m文件数据导入Python
方法1:手动文本解析(无需MATLAB环境)
如果你的数据文件内容简单(像示例这样的二维数组赋值),可以直接读取文本并解析成Python列表或numpy数组:
假设你的文件名为data.m,内容如下:
% ----------------------------- Data(1, :) = [-2.875, 2.75, -1.0, -2.75, -0.875]; Data(2, :) = [-1.125, 2.625, 3.0, 1.25, 2.875];
执行以下Python代码:
import numpy as np # 读取文件内容 with open('data.m', 'r') as file: all_lines = file.readlines() # 筛选有效数据行(跳过注释和空行) valid_lines = [line.strip() for line in all_lines if line.strip() and not line.strip().startswith('%')] # 解析每一行的数组数据 parsed_data = [] for line in valid_lines: # 提取等号后、方括号内的数值字符串 num_str = line.split('=')[1].strip().strip('[];') # 分割并转换为浮点数值 row = [float(num.strip()) for num in num_str.split(',')] parsed_data.append(row) # 转换为numpy数组(可选,根据需求选择列表或数组) data_array = np.array(parsed_data) # 输出结果 print("Python列表格式:") print(parsed_data) print("\nnumpy数组格式:") print(data_array)
运行后会得到:
Python列表格式: [[-2.875, 2.75, -1.0, -2.75, -0.875], [-1.125, 2.625, 3.0, 1.25, 2.875]] numpy数组格式: [[-2.875 2.75 -1. -2.75 -0.875] [-1.125 2.625 3. 1.25 2.875]]
方法2:借助MATLAB生成.mat文件后读取(需MATLAB环境)
如果你的数据结构更复杂,或者有MATLAB环境可用,可以先通过MATLAB将变量导出为.mat格式,再用Python读取:
- 在MATLAB中运行你的
.m文件,然后执行保存命令:
% 运行脚本加载Data变量 save('data.mat', 'Data')
- 在Python中用
scipy.io读取.mat文件:
from scipy.io import loadmat # 加载.mat文件 mat_data = loadmat('data.mat') # 提取Data变量(注意scipy读取后会保留MATLAB的数组维度,这里是2x5的数组) data_array = mat_data['Data'] print(data_array)
两种方法可根据自身环境和数据复杂度选择。
内容的提问来源于stack exchange,提问作者neoserdes
相关产品推荐
相关产品推荐

