Documentation

str2double

Convert strings to double precision values

Description

example

X = str2double(str) converts the text in str to double precision values. str contains text that represents real or complex numeric values. str can be a character vector, a cell array of character vectors, or a string array. If str is a character vector or string scalar, then X is a numeric scalar. If str is a cell array of character vectors or a string array, then X is a numeric array that is the same size as str.

Text that represents a number can contain digits, a comma (thousands separator), a decimal point, a leading + or - sign, an e preceding a power of 10 scale factor, and an i or a j for a complex unit. You cannot use a period as a thousands separator, or a comma as a decimal point.

If str2double cannot convert text to a number, then it returns a NaN value.

Examples

collapse all

Convert character vectors that represent numbers to double precision values. You can also convert a cell array of character vectors to a numeric array of the same size.

Convert a character vector to a real number.

X = str2double('3.1416')
X = 3.1416

Convert a character vector when it represents a number using exponential notation.

X = str2double('2.998e8')
X = 299800000

Convert a character vector that uses a comma as the thousands separator.

X = str2double('1,200.34')
X = 1.2003e+03

Convert a character vector to a complex number.

X = str2double('3.14 + 2.7i')
X = 3.1400 + 2.7000i

Convert a cell array of character vectors to a numeric array.

str = {'2.718','3.1416';
'137','0.015'};
X = str2double(str)
X = 2×2

2.7180    3.1416
137.0000    0.0150

Starting in R2016b, you can create string arrays using the string function. You can convert strings to numbers using the str2double function.

Create a string that represents a number. Convert it to a numeric scalar.

str = string('81470.5')
str =
"81470.5"
X = str2double(str)
X = 8.1471e+04

Create a string array representing numbers. Convert it to a numeric array that is the same size.

str = string({'91.57','95.95','3.57';
'79.22','65.57','84.91'})
str = 2x3 string array
"91.57"    "95.95"    "3.57"
"79.22"    "65.57"    "84.91"

X = str2double(str)
X = 2×3

91.5700   95.9500    3.5700
79.2200   65.5700   84.9100

Input Arguments

collapse all

Text that represents numbers, specified as a character vector, a cell array of character vectors, or a string array.