输出字段的格式,使用格式化操作符指定。formatSpec 还可以包括普通文本和特殊字符。
formatSpec 可以是用单引号引起来的字符向量,从 R2016b 开始,也可以是字符串标量。
格式化操作符
格式化操作符以百分号 % 开头,以转换字符结尾。转换字符是必需的。您也可以在 % 和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,在这里显示空格只是为了便于阅读。)
转换字符
此表显示了要将数值和字符数据格式化为文本的转换字符。
| 值类型 |
转换 |
详细信息 |
|
有符号整数
|
%d 或 %i
|
以 10 为基数
|
|
无符号整数
|
%u
|
以 10 为基数
|
|
%o
|
以 8 为基数(八进制)
|
|
%x
|
以 16 为基数(十六进制),小写字母 a–f
|
|
%X
|
与 %x 相同,大写字母 A–F
|
|
浮点数
|
%f
|
定点记数法(使用精度操作符指定小数点后的位数。)
|
|
%e
|
指数记数法,例如 3.141593e+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') 将输入参数 'A'、'B'、'C' 输出为:C B A B。
注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。
-
标志
|
'–'
|
左对齐。 示例:%-5.2f 示例:%-10s
|
|
'+'
|
始终为任何数值输出符号字符(+ 或 –)。 示例:%+5.2f 右对齐文本。 示例:%+10s
|
|
' '
|
在值之前插入空格。 示例:% 5.2f
|
|
'0'
|
在值之前补零以填充字段宽度。 例如:%05.2f
|
|
'#'
|
修改选定的数值转换:
示例:%#5.0f
|
-
字段宽度
要输出的最低字符数。字段宽度操作符可以是数字,也可以是指向输入参数的星号 (*)。
当您将 * 指定为字段宽度操作符时,其他输入参数必须指定打印宽度和要打印的值。宽度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为字段宽度操作符时,您可以打印具有不同宽度的不同值。
示例:输入参数 ('%12d',intmax) 等效于 ('%*d',12,intmax)。
示例:输入参数 ('%*d',[2 10 5 100]) 返回 '10 100',其中两个空格分配给 10,五个空格分配给 100。您也可以将字段宽度和值指定为多个参数,如 ('%*d',2,10,5,100) 中所示。
除非标志另行指定,否则该函数使用空格填充值之前的字段宽度。
-
精度
|
对于 %f、%e 或 %E
|
小数点右侧的位数 示例:'%.4f' 将 pi 输出为 '3.1416'
|
|
对于 %g 或 %G
|
有效位数 示例:'%.4g' 将 pi 输出为 '3.142'
|
精度操作符可以是数字,也可以是指向参数的星号 (*)。
当您将 * 指定为字段精度操作符时,其他输入参数必须指定打印精度和要打印的值。精度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为精度操作符时,您可以打印具有不同精度的不同值。
将 *.* 指定为字段宽度和精度操作符时,必须以三元组形式指定字段宽度、精度和值。
示例:输入参数 ('%.4f',pi) 等效于 ('%.*f',4,pi)。
示例:输入参数 ('%6.4f',pi) 等效于 ('%.*f',6,4,pi)。
示例:输入参数 ('%*.*f',6,4,pi,9,6,exp(1)) 返回 '3.1416 2.718282',其中以 9 和 6 分别作为 exp(1) 输出的字段宽度和精度。
注意
如果您为浮点值指定的精度操作符所表示的精度超出输入数值数据类型的精度,则在指定精度内,结果与输入值可能不匹配。结果取决于您的计算机硬件和操作系统。
-
子类型
可以使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。子类型操作符紧邻转换字符之前。此表显示了可使用子类型的转换。
|
输入值类型
|
子类型和转换字符
|
输出值类型
|
|
浮点数
|
%bx 或 %bX
%bo
%bu
|
双精度十六进制、八进制或十进制值 例如:%bx 将 pi 输出为 400921fb54442d18
|
|
%tx 或 %tX
%to
%tu
|
单精度十六进制、八进制或十进制值 例如:%tx 将 pi 输出为 40490fdb
|
格式化操作符前或后的文本
formatSpec 还可以在百分号 % 前添加其他文本,或者在转换字符后添加其他文本。文本可以为:
使用格式化操作符进行转换时要注意的行为
-
数值转换仅输出复数的实部。
-
如果指定不适合数据的转换(例如数值的文本转换),MATLAB® 将改写指定的转换并使用 %e。
示例:'%s' 将 pi 转换为 3.141593e+00。
-
如果对整数值应用文本转换(%c 或 %s),MATLAB 会将对应于有效字符代码的值转换为字符。
示例:'%s' 将 [65 66 67] 转换为 ABC。
数据类型: char | string