Format of the output fields, specified using formatting operators. formatSpec
also can include ordinary text and special characters.
If formatSpec
includes literal text representing escape characters, such as \n
, then num2str
translates the escape characters.
formatSpec
can be a character vector in single quotes, or 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
Note: Unlike the sprintf
function, num2str
does not support identifiers.
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.
Example:
'%5d'
prints intmax
as
2147483647
because the value returned by intmax
exceeds the minimum number of characters to print.
If the number of characters to print is less than the field width, then the
compose
function pads to the field width with spaces
before the value unless otherwise specified by flags.
However, the num2str
function does not pad to the field
width with spaces.
Precision
Number of digits to print.
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' |
Example:
'%6.4f'
prints pi
as
'3.1416'
.
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
.