文件

Sprintf.

将数据格式化为字符串

句法

str = sprintf(formatspec,a1,...,a)
[str, errmsg] = sprintf (formatSpec A1,…)
str = sprintf (txt)

描述

例子

str= sprintf (formatSpecA1,......,一个格式化数组中的数据A1,......,一个根据formatSpec以列顺序,并将结果返回str

[strerrmsg.) = sprintf (formatSpecA1,......,一个当操作不成功时,以字符向量的形式返回错误消息。否则,errmsg.是空的。

str= sprintf (三种中转换转义字符序列三种, 如\ n\ t.它返回所有其他字符不变。如果三种包含格式化操作符(例如%F),然后str丢弃它和所有角色。

例子

全部收缩

使用%E.%F,%G说明符。

= 1 /每股收益;str_e = sprintf (' % 0.5 e”,一种)
str_e = ' 4.50360 e + 15 '
str_f = sprintf (' % 0.5 f ',一种)
str_f ='4503599627370496.00000'
str_g = sprintf(% 0.5克的,一种)
str_g = ' 4.5036 e + 15 '

将字面文本与数组值联合以创建字符向量。

formatspec =.'数组是%dx%d。';A1 = 2;A2 = 3;str = sprintf (formatSpec A1, A2)
str = '该数组是2x3.'

若要将格式化文本作为字符串返回,请指定formatSpec当您调用时,作为字符串而不是字符向量Sprintf.功能。

从R2017a开始,您可以使用双引号创建字符串。转换数据并以字符串形式返回结果。

formatspec =.当前时间为:%d:%d %s;A1 = 11;A2 = 20;A3 =“点”。;str = sprintf(formatspec,a1,a2,a3)
str = "当前时间是:11:20 a.m. ."

把输入字符串。包含文本的输入数组可以是字符向量,也可以是字符串。

A1 = 2;A2 = 35;A3 =“点”。;str = sprintf(formatspec,a1,a2,a3)
str = "当前时间是:下午2:35 ."

显式地将双精度值转换为整数。

str = sprintf(' % d '而圆(π))
str = ' 3 '

指定打印值的最小宽度。

str = sprintf(“% 025 d”[123456])
str = ' 0000000000000000000123456 '

0.国旗的% 025 d格式说明符在输出中请求前导零。

使用该输入值重新排序输入值$位置标识符。

A1 ='X';A2 ='是';A3 ='z';formatspec =.%3$s %2$s %1$s;str = sprintf(formatspec,a1,a2,a3)
str = ' Z Y X'
C = {1,2,3;“AA”“BB”“CC”};str = sprintf('%d%s'C {:})
str = ' 1 AA 2 BB 3 CC'

语法C {:}创建以逗号分隔的数组列表,其中包含来自每个单元格的内容C按列顺序。例如,c {1} == 1C{2} = =“AA”

输入参数

全部收缩

输出字段的格式,使用格式化操作符指定。formatSpec还可以包括普通文本和特殊字符。

formatSpec可以是单引号中的字符向量,或者从R2016b开始的字符串标量。

格式化操作符

格式化操作符以百分号开始,%GydF4y2Ba,并以转换字符结束。需要转换字符。(可选)您可以指定标识符,标志,字段宽度,精度和子类型运算符%GydF4y2Ba和转换字符。(操作符之间的空格无效,此处仅为可读性而显示)。

转换字符

该表显示了将数字和字符数据格式化为文本的转换字符。

值类型 转换 细节

整数,签署了

%D.%一世

以10为底的

整数,无符号

%U.

以10为底的

%O.

基地8(八进制)

%X

基数16(十六进制),小写字母一种-F

%X

与...一样%X,大写字母一种-F

浮点数

%F

定点记数法(使用精确运算符指定小数点后的位数。)

%E.

指数符号,例如3.141593 e + 00(使用精确运算符指定小数点后的位数。)

%E.

与...一样%E.,而是大写的,例如3.141593E + 00.(使用精确运算符指定小数点后的位数。)

%G

更紧凑%E.%F,后面没有零(使用精确运算符指定有效数字的数目。)

%G

更紧凑%E.%F,后面没有零(使用精确运算符指定有效数字的数目。)

字符或字符串

%C

单个字符

%S.

字符向量或字符串数组。的类型与输出文本的类型相同formatSpec

可选的运营商

可选的标识符,标志,字段宽度,精度和子类型运算符进一步定义了输出文本的格式。

  • 标识符

    命令处理函数输入参数。使用语法N.$,在那里N.表示函数调用中其他输入参数的位置。

    例子:('%3$s %2$s %1$s %2$s','A','B','C')打印输入参数“一个”“B”“C”如下:C b a b

    注意:如果输入参数是一个数组,则不能使用标识符从该输入参数指定特定的数组元素。

  • 旗帜

    ' - '

    左右。
    例子:% -5.2度
    例子:% -10年代

    “+”

    始终为任何数值打印符号字符(+或 - )。
    例子:% + 5.2 f
    文本对齐。
    例子:% + 10 s

    ' '

    在值之前插入一个空格。
    例子:%5.2f.

    '0'

    在值之前用零填充到字段宽度。
    例子:%05.2f.

    “#”

    修改选定的数值转换:

    • 为了%O.%X,或%X, 打印0.0 x,或0 x前缀。

    • 为了%F%E.,或%E.,即使精度为0也打印小数点。

    • 为了%G%G,不删除末尾的零或小数点。

    例子:%#5.0f.

  • 字段宽度

    要打印的最小字符数。字段宽度运算符可以是数字或星号(*)引用输入参数。

    例子:输入参数(intmax ' % 12 d ')相当于(' % * d ', 12日intmax)

    除非由标志另行指定,否则函数在值之前用空格填充字段宽度。

  • 精确

    为了%F%E.,或%E.

    小数点右边的位数
    例子:“% .4f”打印π作为'3.1416'

    为了%G%G

    有效数字数量
    例子:“% .4g”打印π作为“3.142”

    精度运算符可以是数字或星号(*)指的是一个论点。

    例子:输入参数('%6.4f',pi)相当于(“% *。*F', 6, 4, pi)

    笔记

    如果为浮点值指定了超过输入数字数据类型的精度的浮点值,则结果可能与输入值与您指定的精度不符。结果取决于您的计算机硬件和操作系统。

  • 子类型

    可以使用子类型操作符将浮点值打印为八进制、十进制或十六进制值。子类型操作符紧靠转换字符之前。该表显示了可以使用子类型的转换。

    输入值类型

    子类型和转换字符

    输出值类型

    浮点数

    % bx% bX
    %博
    % bu

    双重精度十六进制,八进制或十进制值
    例子:% bx打印π作为400921 fb54442d18

    %tx.%tx.
    %到
    %TU.

    单精度十六进制,八进制或十进制值
    例子:%tx.打印π作为40490身上

格式化运算符之前或之后的文本

formatSpec也可以在百分号前包含额外的文本,%GydF4y2Ba,或在转换字符之后。文本可以是:

  • 普通文本打印。

  • 不能作为普通文本输入的特殊字符。中特殊字符的表示方法formatSpec

    特殊字符

    表示

    单引号

    ''

    百分比的性格

    %%

    反斜杠

    \\

    报警

    、一个

    背板

    \ b

    表格饲料

    \ f

    新队

    \ n

    回车

    r \

    水平选项卡

    \ t

    垂直制表符

    v \

    字符的Unicode®数值可以由十六进制数表示,N

    \ xn.

    例子:Sprintf('\ x5a')回报'z'

    Unicode数值可以由八进制数表示的字符,N

    \ N

    例子:sprintf (\ 132 ')回报'z'

使用格式化操作符进行转换的显著行为

  • 数字转换只打印复数的实部份。

  • 如果指定不适合数据的转换,例如用于数值的文本转换,则Matlab®覆盖指定的转换和使用%E.

    例子:' % s '转换π3.141593 e + 00

  • 如果您应用文本转换(或%C%S.)转换为整数值,MATLAB将有效字符码对应的值转换为字符。

    例子:' % s '转换[65 66 67]ABC.

数据类型:字符|字符串

数字,字符或字符串数​​组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串

输入文本无需格式化运算符,指定为字符向量或字符串标量。Sprintf.翻译任何逃生字符序列三种

数据类型:字符|字符串

输出参数

全部收缩

格式化的文本,作为字符向量或字符串标量返回。的类型匹配输出的类型formatSpec

当操作不成功时,返回一个字符向量的错误消息。否则,errmsg.是空的。

提示

  • Sprintf.函数类似于,但打印到文件或命令窗口。

  • 读取函数的格式说明符sscanfFSCANF.不同于编写函数的格式Sprintf..读取功能不支持精确字段。金宝app宽度字段指定写入的最小值,但读取最大值。

参考文献

B. W. Kernighan和D. M. Ritchie,C编程语言,第二版,普伦蒂斯-霍尔公司,1988。

[2] ANSI specification X3.159-1989:“Programming Language C,”ANSI, 1430 Broadway, New York, NY 10018。

扩展功能

之前介绍过的R2006a