MATLAB 数据导出完全指南:ASCII、日志、低级 I/O 与电子表格
数据导出即将数据写入文件。MATLAB 支持:
- 数组到分隔符 ASCII 文件
- 日志文件(键盘输入与输出记录)
- 低级 fprintf 创建特殊格式文本
- MEX 文件调用 C/C++/Fortran 写入特定格式
- 导出到电子表格
数组导出为分隔符 ASCII 文件
两种方式:
- save -ascii:
save my_data.out num_array -ascii
- dlmwrite:
dlmwrite('my_data.out', num_array, 'dlm_char')
示例
num_array = [1 2 3 4; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii; type array_data1.out
dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
输出对比:
% save -ascii 科学计数法 1.0000000e+00 2.0000000e+00 ... % dlmwrite 普通格式 1 2 3 4 4 5 6 7 7 8 9 0
注意:两者不支持元胞数组输入,需先 cell2mat 转矩阵或用低级 I/O。
字符数组用 save -ascii 会写入 ASCII 码值:
h = 'hello'; save textdata.out h -ascii; type textdata.out
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
日志文件
diary 记录会话(不含图形)。
diary % 开启,默认 diary 文件 diary logdata.out % 指定文件 diary off % 关闭
低级 I/O 导出文本数据
用 fopen(权限 'w'/'a')获取标识符,fprintf 写入,fclose 关闭。
示例:生成对数函数表
x = 0:10:100; y = [x; log(x)];
fid = fopen('logtable.txt','w');
fprintf(fid, 'Log Function\n\n');
fprintf(fid, '%f %f\n', y); % 列优先,每行两值
fclose(fid);
type logtable.txt
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 ... 100.000000 4.605170
MATLAB
- Azure 文件存储详解:安全可扩展云存储入门指南
- C 语言文件 I/O 实战:创建、打开、读写与二进制操作
- MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
- MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
- MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
- MATLAB 运算符大全:矩阵/数组算术、关系、逻辑、位运算、集合运算详解
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
- MATLAB 多维数组与特殊数组完全指南
- MATLAB 冒号运算符详解:向量创建与高效迭代
- MATLAB 数值类型详解:存储、转换与范围查询
- MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
- MATLAB 函数详解:定义、工作区、输入输出与多种函数类型