num2str - Convert numbers to character array - MATLAB (original) (raw)

Convert numbers to character array

Syntax

Description

Note

string is recommended overnum2str for combining numeric scalars with text. Use the + operator to combine strings and numeric values for improved readability. For additional information, see Alternative Functionality.

[s](#btfaj9t-1-s) = num2str([A](#btfaj9t-1-A)) converts a numeric array into a character array that represents the numbers. The output format depends on the magnitudes of the original values.num2str is useful for labeling and titling plots with numeric values.

example

[s](#btfaj9t-1-s) = num2str([A](#btfaj9t-1-A),[precision](#btfaj9t-1-precision)) returns a character array that represents the numbers with the maximum number of significant digits specified by precision.

example

[s](#btfaj9t-1-s) = num2str([A](#btfaj9t-1-A),[formatSpec](#bu6eywi-formatSpec)) applies a format specified by formatSpec to all elements ofA.

Note

If a format is specified, s will not include spaces between elements of A. To include spaces, add one to the format.

example

Examples

collapse all

Convert the floating-point values returned by pi and eps to character vectors.

Specify the maximum number of significant digits for floating-point values.

rng('default') A = randn([2,2]); s = num2str(A,3)

s = 2×15 char array '0.538 -2.26' ' 1.83 0.862'

Display pi as a floating-point number to a specified precision.

formatSpec = '%.2f'; s = num2str(pi,formatSpec)

Input Arguments

collapse all

Input array, specified as a numeric array.

Data Types: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Complex Number Support: Yes

Maximum number of significant digits in the output string, specified as a positive integer.

Note

If you specify precision to exceed the precision of the input floating-point 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.

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

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).

Schematic of formatting operator characters.

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.

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

Output Arguments

collapse all

Text representation of the input array, returned as a character array.

Tips

Algorithms

num2str trims any leading spaces from a character array, even when formatSpec includes a space character flag. For example,num2str(42.67,'% 10.2f') returns a 1-by-5 character array'42.67'.

Alternative Functionality

Update code that makes use of num2str to combine numeric scalars with text to use string instead. Numeric values can be combined with strings using the + operator. For example:

Not Recommended Recommended
newstr = ['The value is ' num2str(4.5)] newstr = 'The value is 4.5' newstr = "The value is " + 4.5 newstr = "The value is 4.5"

Extended Capabilities

expand all

Usage notes and limitations:

The num2str function fully supports GPU arrays. To run the function on a GPU, specify the input data as a gpuArray (Parallel Computing Toolbox). For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced before R2006a

expand all

You can generate C/C++ code for this function.