Octave中无法从mat文件提取指定内容为csv格式的代码求助
Octave 从MAT文件提取指定变量导出为CSV实现方案
- 加载目标MAT文件,确认待提取的目标变量(即截图中箭头标记的对象)
% 替换为你的MAT文件实际存储路径 mat_file_path = "your_file.mat"; % 加载文件内所有变量到工作区 load(mat_file_path); % 列出工作区所有变量的名称、维度、类型,定位你需要提取的目标变量名 whos
- 按原有结构提取目标变量并导出为CSV
% 将下方的target_variable替换为你上一步定位到的目标变量名 target_data = target_variable; if isstruct(target_data) % 按原有顺序提取结构体字段名作为CSV表头 col_names = fieldnames(target_data); % 转换结构体为单元格数组,保留原有行列对应关系 data_matrix = squeeze(struct2cell(target_data))'; % 拼接表头和数据 export_content = [col_names'; data_matrix]; else % 非结构体类型(数值矩阵、普通数组等)直接作为导出内容 export_content = target_data; end % 替换为你想要保存的CSV文件路径 csv_save_path = "output.csv"; % 写入CSV文件,若提示函数不存在先执行pkg load io加载io工具包 cell2csv(csv_save_path, export_content);
常见问题处理:
- 运行提示
cell2csv未定义:先执行pkg install -forge io安装官方io工具包,再执行pkg load io加载后重新运行导出代码即可- 导出后CSV行列顺序颠倒:把代码中
squeeze(struct2cell(target_data))后的转置符'删除即可,适配不同MAT文件的变量存储维度- 存在中文乱码:在
cell2csv参数中追加编码设置,写为cell2csv(csv_save_path, export_content, ",", "utf-8")即可
内容的提问来源于stack exchange,提问作者Sankalan Dey
相关产品推荐
相关产品推荐

