在matlab中如何将matlab/python混合编程得到的 Python DataFrame格式数据转换为matlab可读取数据
时间: 2025-07-06 21:31:08 浏览: 10
### MATLAB 和 Python 混合编程:将 Pandas DataFrame 转换为 MATLAB 数据结构
在 MATLAB 中使用 Python 的功能时,可以通过 MATLAB 提供的 `py` 接口调用 Python 库。要将 Pandas DataFrame 转换为 MATLAB 可读取的数据结构(如表格 `table` 或元胞数组 `cell array`),可以采用以下方法[^5]。
#### 示例代码
以下是具体的实现过程:
```matlab
% 启动 Python 并导入必要的库
pyenv('Version', '3.8'); % 设置使用的 Python 版本
df_py = py.pandas.DataFrame(py.numpy.random.randn(4, 4), ...
'index', py.list({'A', 'B', 'C', 'D'}), ...
'columns', py.list({'O', 'P', 'K', 'L'})); % 创建一个 Pandas DataFrame
% 将 Pandas DataFrame 转换为 MATLAB 表格 (table)
values_mat = cellfun(@(x) double(x), cell(py.list(df_py.values.tolist())), 'UniformOutput', false); % 转换值
names_col = char(py.list(df_py.columns)); % 获取列名
names_row = char(py.list(df_py.index)); % 获取索引名
% 构建 MATLAB table
table_mat = array2table(cell2mat(values_mat)', 'VariableNames', names_col);
% 显示结果
disp(table_mat);
```
这段代码实现了从 Pandas DataFrame 到 MATLAB `table` 的转换,并保留了原始数据的行列名称。
---
#### 关键步骤解释
1. **启动 Python 环境**
使用 `pyenv` 函数指定所用的 Python 版本,确保环境兼容性。
2. **创建 Pandas DataFrame**
借助 `py.pandas.DataFrame` 创建一个随机生成的 DataFrame,定义其索引和列名。
3. **提取数据与属性**
- `df_py.values`: 提取 DataFrame 的核心数值矩阵。
- `df_py.columns`: 获取列名。
- `df_py.index`: 获取行索引。
4. **转换为 MATLAB 格式**
- 使用 `cellfun` 配合 `double()` 将 Python 数组中的浮点数转为 MATLAB 支持的形式。
- 结合 `array2table` 构造最终的 MATLAB 表格对象。
---
#### 注意事项
- 若 DataFrame 包含非数值类型的字段(如字符串或日期时间),则需要额外处理这些特殊类型以适配 MATLAB 的数据模型。
- 上述代码假设所有数据均为双精度浮点数 (`double`) 类型;若有其他类型,请调整相应的转换逻辑。
---
###
阅读全文
相关推荐


















