MATLAB 字符串函数参考

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。