MATLAB格式化输出常用 fprintf:格式串里留占位符,后面按顺序填值。
fprintf('我是 %s,今年 %d 岁,身高 %.2f 米。\n', '小明', 12, 1.405)我是 小明,今年 12 岁,身高 1.41 米。%s 填字符串,%d 填整数,%.2f 填保留两位小数的浮点数,\n 换行。
占位符速查
| 占位符 | 含义 | 例子 |
|---|---|---|
%s | 字符串 | '你好' |
%d | 整数 | 42 |
%f | 浮点数 | 3.14159 |
%.2f | 保留两位小数 | 3.14 |
%e | 科学计数法 | 3.14e+00 |
\n | 换行 | |
\t | 制表符(对齐用) |
宽度控制:%12.2f 表示总宽 12、保留 2 位小数,不足补空格(右对齐)。想在前面补 0,用 %012.2f:
A = 3141.592654;
fprintf('%12.2f\n', A) % ' 3141.59'
fprintf('%012.2f\n', A) % '000003141.59'fprintf vs sprintf vs disp
| 函数 | 输出到哪 | 典型用途 |
|---|---|---|
disp | 命令窗口 | 简单显示,自动带换行 |
fprintf | 命令窗口或文件 | 需要格式化,或写文件时 |
sprintf | 返回字符串变量 | 把格式化结果存下来复用 |
msg = sprintf('结果:%d', 42); % 存进变量,稍后再用
disp(msg) % 显示出来循环里打印进度
fprintf 不会像 disp 那样自动换行,所以循环里可以按自己写的 \n 逐条打印:
for i = 1:5
fprintf('第 %d 次\n', i);
end会输出 5 行,每行是第 N 次。
动手练习
- 用 fprintf 把名字和年龄拼成一句完整的话。
- 用
%.3f打印pi,再用%e打印一次,对比格式。 - 在循环里打印 1 到 10 的平方,每行写成 i=3, i^2=9 这种形式。
- 试试
%05d打印 42,看前面补了几个 0。