Format of the output fields, specified using formatting operators. formatSpec
also
can include ordinary text and special characters.
formatSpec
can be a character vector in single
quotes, or, starting in R2016b, a string scalar.
Formatting Operator
A formatting operator starts with a percent sign, %
,
and ends with a conversion character. The conversion character is
required. Optionally, you can specify identifier, flags, field width,
precision, and subtype operators between %
and
the conversion character. (Spaces are invalid between operators and
are shown here only for readability).
Conversion Character
This table shows conversion characters to format numeric and
character data as text.
Value Type | Conversion | Details |
---|
Integer, signed | %d or %i
| Base 10 |
Integer, unsigned | %u
| Base 10 |
%o
| Base 8 (octal) |
%x
| Base 16 (hexadecimal), lowercase letters a –f |
%X
| Same as %x , uppercase letters A –F |
Floating-point number | %f
| Fixed-point notation (Use a precision operator to specify
the number of digits after the decimal point.) |
%e
| Exponential notation, such as 3.141593e+00 (Use
a precision operator to specify the number of digits after the decimal
point.) |
%E
| Same as %e , but uppercase, such as 3.141593E+00 (Use
a precision operator to specify the number of digits after the decimal
point.) |
%g
| The more compact of %e or %f ,
with no trailing zeros (Use a precision operator to specify the number
of significant digits.) |
%G
| The more compact of %E or %f ,
with no trailing zeros (Use a precision operator to specify the number
of significant digits.) |
Characters or strings | %c
| Single character |
%s
| Character vector or string array. The type of the output
text is the same as the type of formatSpec . |
Optional Operators
The optional identifier, flags, field width, precision, and
subtype operators further define the format of the output text.
Identifier
Order for processing the function input arguments. Use the syntax n
$
,
where n
represents the positions of the
other input arguments in the function call.
Example: ('%3$s %2$s
%1$s %2$s','A','B','C')
prints input arguments 'A'
, 'B'
, 'C'
as
follows: C B A B
.
Note: If an input argument
is an array, you cannot use identifiers to specify particular array
elements from that input argument.
Flags
'–'
| Left-justify.
Example: %-5.2f
Example: %-10s |
'+'
| Always print a sign character (+ or –) for any
numeric value.
Example: %+5.2f
Right-justify text.
Example: %+10s |
' '
| Insert a space before the value.
Example: % 5.2f |
'0'
| Pad to field width with zeros before the value.
Example: %05.2f |
'#'
| Modify selected numeric conversions: For %o , %x ,
or %X , print 0 , 0x ,
or 0X prefix. For %f , %e ,
or %E , print decimal point even when precision
is 0. For %g or %G ,
do not remove trailing zeros or decimal point.
Example: %#5.0f |
Field Width
Minimum number of characters to print. The field width operator
can be a number, or an asterisk (*
) to refer to
an input argument.
Example: The input arguments ('%12d',intmax)
are
equivalent to ('%*d', 12, intmax)
.
The function pads to field width with spaces before the value
unless otherwise specified by flags.
Precision
For %f , %e , or %E | Number of digits to the right of the decimal point
Example: '%.4f' prints pi as '3.1416' |
For %g or %G | Number of significant digits
Example:
'%.4g' prints pi as
'3.142' |
The precision operator can be a number, or an asterisk (*
)
to refer to an argument.
Example: The input arguments ('%6.4f',
pi)
are equivalent to ('%*.*f', 6, 4, pi)
.
Note
If you specify a precision operator for floating-point values
that exceeds the precision of the input numeric data type, the results
might not match the input values to the precision you specified. The
result depends on your computer hardware and operating system.
Subtypes
You can use a subtype operator to print a floating-point value
as its octal, decimal, or hexadecimal value. The subtype operator
immediately precedes the conversion character. This table shows the
conversions that can use subtypes.
Input Value Type | Subtype and Conversion Character | Output Value Type |
---|
Floating-point number | %bx or %bX
%bo
%bu
| Double-precision hexadecimal, octal, or decimal value
Example: %bx prints pi as 400921fb54442d18 |
%tx or %tX
%to
%tu
| Single-precision hexadecimal, octal, or decimal value
Example: %tx prints pi as 40490fdb |
Text Before or After Formatting Operators
formatSpec
can also include additional text
before a percent sign, %
, or after a conversion
character. The text can be:
Notable Behavior of Conversions with Formatting
Operators
Numeric conversions print only the real component
of complex numbers.
If you specify a conversion that does not fit the
data, such as a text conversion for a numeric value, MATLAB overrides
the specified conversion, and uses %e
.
Example: '%s'
converts pi
to 3.141593e+00
.
If you apply a text conversion (either %c
or %s
)
to integer values, MATLAB converts values that correspond to
valid character codes to characters.
Example: '%s'
converts [65
66 67]
to ABC
.
Data Types: char
| string