Format data into string


  • str = sprintf(formatSpec,A1,...,An) example
  • [str,errmsg] = sprintf(formatSpec,A1,...,An)



str = sprintf(formatSpec,A1,...,An) formats the data in arrays A1,...,An according to formatSpec in column order, and returns the results to string str.

[str,errmsg] = sprintf(formatSpec,A1,...,An) returns an error message string when the operation is unsuccessful. Otherwise, errmsg is empty.


expand all

Floating-Point Formats

Format a floating-point number using %e, %f, and %g specifiers.

A = 1/eps;
str_e = sprintf('%0.5e',A)
str_f = sprintf('%0.5f',A)
str_g = sprintf('%0.5g',A)
str_e =


str_f =


str_g =


Literal Text and Array Inputs

Combine literal text with array values to create a string.

formatSpec = 'The array is %dx%d.';
A1 = 2;
A2 = 3;
str = sprintf(formatSpec,A1,A2)
str =

The array is 2x3.

Integer Format with Floating-Point Inputs

Explicitly convert double-precision values to integers.

str = sprintf('%d',round(pi))
str =


Specify Field Width of a Printed Value

Specify the minimum width of the printed value.

str = sprintf('%025d',[123456])
str =

The 0 flag in the %025d format specifier requests leading zeros in the output.

Reorder Inputs Using Position Identifier (n$)

Reorder the input values using the n$ position identifier.

A1 = 'X';
A2 = 'Y';
A3 = 'Z';
formatSpec = ' %3$s %2$s %1$s';
str = sprintf(formatSpec,A1,A2,A3)
str =
 Z Y X

Create a String from Values in Cell Array

C = { 1,   2,   3 ;

str = sprintf(' %d %s',C{:})
str =
 1 AA 2 BB 3 CC

The syntax C{:} creates a comma-separated list of arrays that contain the contents of each cell from C in column order. For example, C{1}==1 and C{2}=='AA'.

Input Arguments

expand all

formatSpec — Format of the output fieldsstring

Format of the output fields, specified as a string.

The string can include a percent sign followed by a conversion character. The following table lists the available conversion characters and subtypes.

Value TypeConversionDetails

Integer, signed

%d or %i

Base 10

Integer, unsigned


Base 10


Base 8 (octal)


Base 16 (hexadecimal), lowercase letters af


Same as %x, uppercase letters AF

Floating-point number


Fixed-point notation


Exponential notation, such as 3.141593e+00


Same as %e, but uppercase, such as 3.141593E+00


The more compact of %e or %f, with no trailing zeros


The more compact of %E or %f, with no trailing zeros

%bx or %bX

Double-precision hexadecimal, octal, or decimal value
Example: %bx prints pi as 400921fb54442d18

%tx or %tX

Single-precision hexadecimal, octal, or decimal value
Example: %tx prints pi as 40490fdb



Single character


String of characters

The string can include optional operators, which appear in the following order (includes spaces for clarity):

Optional operators include:

  • Identifier

    Order for processing inputs. Use the syntax n$, where n represents the position of the value in the input list.

    For example, '%3$s %2$s %1$s %2$s' prints inputs 'A', 'B', 'C' as follows: C B A B.

  • Flags


    Left-justify. Example: %-5.2f


    Print sign character (+) for positive values. Example: %+5.2f

    ' '

    Pad to field width with spaces before the value. Example: % 5.2f


    Pad to field width with zeros. 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. Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list ('%12d', intmax) is equivalent to ('%*d', 12, intmax).

  • Precision

    For %f, %e, or %E:

    Number of digits to the right of the decimal point.
    Example: '%6.4f' prints pi as '3.1416'

    For %g or %G

    Number of significant digits.
    Example: '%6.4g' prints pi as ' 3.142'

    Can be a number, or an asterisk (*) to refer to an argument in the input list. For example, the input list ('%6.4f', pi) is equivalent to ('%*.*f', 6, 4, pi).

The string can also include combinations of the following:

  • Literal text to print. To print a single quotation mark, include '' in formatSpec.

  • Control characters, including:


    Percent character








    Form feed


    New line


    Carriage return


    Horizontal tab


    Vertical tab


    Character whose ASCII code is the hexadecimal number, N


    Character whose ASCII code is the octal number, N

The following limitations apply to conversions:

  • Numeric conversions print only the real component of complex numbers.

  • If you specify a conversion that does not fit the data, such as a string conversion for a numeric value, MATLAB® overrides the specified conversion, and uses %e.

  • If you apply a string conversion (%s) to integer values, MATLAB converts values that correspond to valid character codes to characters. For example, '%s' converts [65 66 67] to ABC.

A1,...,An — Numeric or character arraysscalar | vector | matrix | multidimensional array

Numeric or character arrays, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char

Output Arguments

expand all

str — Formatted textstring

Formatted text, returned as a string.

errmsg — Error messagestring

Error message, returned as a string, when the operation is unsuccessful. Otherwise, errmsg is empty.

More About

expand all


  • The sprintf function is similar to fprintf, but fprintf prints to a file or to the Command Window.

  • Format specifiers for the reading functions sscanf and fscanf differ from the formats for the writing functions sprintf and fprintf. The reading functions do not support a precision field. The width field specifies a minimum for writing but a maximum for reading.


[1] Kernighan, B. W., and D. M. Ritchie, The C Programming Language, Second Edition, Prentice-Hall, Inc., 1988.

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

See Also

| | | | |

Was this topic helpful?