MATLAB sprintf 函数按格式串拼出字符串并返回。语法与 fprintf 接近,但结果写入变量,而不是输出到屏幕或文件。
语法
str = sprintf(formatSpec, A1, A2, ...)常用格式符
| 占位符 | 含义 | 示例输出 |
|---|---|---|
%s | 字符串 | hello |
%d | 整数 | 42 |
%f | 浮点数 | 3.141593 |
%.2f | 浮点数保留 2 位小数 | 3.14 |
%e | 科学计数法 | 3.14e+00 |
\n | 换行 | — |
\t | 制表符 | — |
示例
msg = sprintf('圆周率 = %.2f', pi)msg = '圆周率 = 3.14'多个占位符按顺序填值:
name = '小明'; score = 92.5;
msg = sprintf('%s 的成绩是 %.1f 分', name, score)msg = '小明 的成绩是 92.5 分'宽度与补零(总宽 12、2 位小数、前面补 0):
sprintf('%012.2f', 3141.5926)ans = '000003141.59'把矩阵批量格式化(生成整齐的报告行):
data = [1.2 3.45; 6.7 8.9];
for i = 1:2
fprintf('%s\n', sprintf('第 %d 行: %.2f, %.2f', i, data(i,1), data(i,2)))
end注意事项
- 格式符数量和参数数量必须一一对应,多了少了都报错;
- 字面
%要写成%%; - 显示到屏幕用 fprintf,想存进变量后续处理用 sprintf。