将数据格式化为字符串
str = sprintf(formatspec,a1,...,a)
[str, errmsg] = sprintf (formatSpec A1,…)
str = sprintf (txt)
格式化数组中的数据str
= sprintf (formatSpec
那A1,......,一个
)A1,......,一个
根据formatSpec
以列顺序,并将结果返回str
.
[
当操作不成功时,以字符向量的形式返回错误消息。否则,str
那errmsg.
) = sprintf (formatSpec
那A1,......,一个
)errmsg.
是空的。
使用%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(“% 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} == 1
和C{2} = =“AA”
.
formatSpec
-输出字段格式输出字段的格式,使用格式化操作符指定。formatSpec
还可以包括普通文本和特殊字符。
formatSpec
可以是单引号中的字符向量,或者从R2016b开始的字符串标量。
格式化操作符
格式化操作符以百分号开始,%GydF4y2Ba
,并以转换字符结束。需要转换字符。(可选)您可以指定标识符,标志,字段宽度,精度和子类型运算符%GydF4y2Ba
和转换字符。(操作符之间的空格无效,此处仅为可读性而显示)。
转换字符
该表显示了将数字和字符数据格式化为文本的转换字符。
值类型 | 转换 | 细节 |
---|---|---|
整数,签署了 |
|
以10为底的 |
整数,无符号 |
|
以10为底的 |
|
基地8(八进制) |
|
|
基数16(十六进制),小写字母 |
|
|
与...一样 |
|
浮点数 |
|
定点记数法(使用精确运算符指定小数点后的位数。) |
|
指数符号,例如 |
|
|
与...一样 |
|
|
更紧凑 |
|
|
更紧凑 |
|
字符或字符串 |
|
单个字符 |
|
字符向量或字符串数组。的类型与输出文本的类型相同 |
可选的运营商
可选的标识符,标志,字段宽度,精度和子类型运算符进一步定义了输出文本的格式。
标识符
命令处理函数输入参数。使用语法
,在那里N.
$N.
表示函数调用中其他输入参数的位置。
例子:('%3$s %2$s %1$s %2$s','A','B','C')
打印输入参数“一个”
那“B”
那“C”
如下:C b a b
.
注意:如果输入参数是一个数组,则不能使用标识符从该输入参数指定特定的数组元素。
旗帜
|
左右。 |
|
始终为任何数值打印符号字符(+或 - )。 |
|
在值之前插入一个空格。 |
|
在值之前用零填充到字段宽度。 |
|
修改选定的数值转换:
例子: |
字段宽度
要打印的最小字符数。字段宽度运算符可以是数字或星号(*
)引用输入参数。
例子:输入参数(intmax ' % 12 d ')
相当于(' % * d ', 12日intmax)
.
除非由标志另行指定,否则函数在值之前用空格填充字段宽度。
精确
为了 |
小数点右边的位数 |
为了 |
有效数字数量 |
精度运算符可以是数字或星号(*
)指的是一个论点。
例子:输入参数('%6.4f',pi)
相当于(“% *。*F', 6, 4, pi)
.
如果为浮点值指定了超过输入数字数据类型的精度的浮点值,则结果可能与输入值与您指定的精度不符。结果取决于您的计算机硬件和操作系统。
子类型
可以使用子类型操作符将浮点值打印为八进制、十进制或十六进制值。子类型操作符紧靠转换字符之前。该表显示了可以使用子类型的转换。
输入值类型 |
子类型和转换字符 |
输出值类型 |
---|---|---|
浮点数 |
|
双重精度十六进制,八进制或十进制值 |
|
单精度十六进制,八进制或十进制值 |
格式化运算符之前或之后的文本
formatSpec
也可以在百分号前包含额外的文本,%GydF4y2Ba
,或在转换字符之后。文本可以是:
普通文本打印。
不能作为普通文本输入的特殊字符。中特殊字符的表示方法formatSpec
.
特殊字符 |
表示 |
---|---|
单引号 |
|
百分比的性格 |
|
反斜杠 |
|
报警 |
|
背板 |
|
表格饲料 |
|
新队 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
字符的Unicode®数值可以由十六进制数表示, |
例子: |
Unicode数值可以由八进制数表示的字符, |
例子: |
使用格式化操作符进行转换的显著行为
数字转换只打印复数的实部份。
如果指定不适合数据的转换,例如用于数值的文本转换,则Matlab®覆盖指定的转换和使用%E.
.
例子:' % s '
转换π
来3.141593 e + 00
.
如果您应用文本转换(或%C
或%S.
)转换为整数值,MATLAB将有效字符码对应的值转换为字符。
例子:' % s '
转换[65 66 67]
来ABC.
.
数据类型:字符
|字符串
A1,......,一个
-数字、字符或字符串数组数字,字符或字符串数组。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
|字符
|字符串
三种
-没有格式化操作符的输入文本输入文本无需格式化运算符,指定为字符向量或字符串标量。Sprintf.
翻译任何逃生字符序列三种
.
数据类型:字符
|字符串
str
- 格式化的文本格式化的文本,作为字符向量或字符串标量返回。的类型匹配输出的类型formatSpec
.
errmsg.
——错误消息当操作不成功时,返回一个字符向量的错误消息。否则,errmsg.
是空的。
这Sprintf.
函数类似于流
,但流
打印到文件或命令窗口。
读取函数的格式说明符sscanf
和FSCANF.
不同于编写函数的格式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。
使用注意事项及限制:
这formatSpec
参数必须是常量。
在formatSpec
,十六进制数必须在[0 7F]范围内,八进制数必须在[0 177]范围内。
如果所有输入阵列都是常量,则代码生成器评估Sprintf.
在MATLAB中编译时调用。在这种情况下,代码生成限制Sprintf.
不适用和行为Sprintf.
生成的代码与MATLAB中的行为相同。
如果无法进行外部呼叫,则代码生成器会产生C代码Sprintf.
.自禁用外部呼叫或何时时,无法进行外部呼叫Sprintf.
在一个议案
环形。
的行为Sprintf.
在生成的代码中匹配C编译器行为而不是在这些情况下匹配MATLAB行为:
格式说明符具有相应的C格式说明符,例如,%E.
或%E.
.
这Sprintf.
调用位于议案
环形。
外部调用被禁用。
不支持以下选项和功能:金宝app
这$
用于重新排序输入值的位置标识符
打印数组
使用子类型将浮点数打印为八进制、十进制或十六进制值
你打电话时Sprintf.
使用格式说明符%S.
,则不能在输入字符向量中间放置空字符。要写入空字符,请使用Sprintf(FID,'%C',Char(0))
.
输入参数类型必须与其格式类型匹配。例如,如果N.
是double,代码生成不允许以下代码:
str = sprintf(' % d ', n)
对于代码生成,首先进行强制转换N.
签署的整数类型如int8
.
str = sprintf(' % d 'int8 (n))
你打电话时Sprintf.
对于整数格式说明符,整型参数的类型必须是目标硬件可以表示为本机C类型的类型。例如,如果你打电话Sprintf('%d',int64(n))
,则目标硬件必须具有支持64位整数的本地C类型。金宝app
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。