str2num

Преобразуйте символьный массив в числовой массив

Синтаксис

X = str2num(chr)
[X,tf] = str2num(chr)

Описание

пример

X = str2num(chr) преобразовывает символьный массив или скаляр строки к числовой матрице. Входной параметр может включать пробелы, запятые и точки с запятой, чтобы указать на отдельные элементы. Если str2num не может проанализировать входной параметр как числовые значения, то это возвращает пустую матрицу.

Функция str2num не преобразовывает массивы ячеек или нескалярные массивы строк, и чувствительна к разрядке вокруг операторов - и +. Кроме того, str2num использует функцию eval, которая может вызвать непреднамеренные побочные эффекты, когда входной параметр включает имя функции. Чтобы избежать этих проблем, используйте str2double.

пример

[X,tf] = str2num(chr) дополнительно возвращает второй выходной аргумент, который является 1 (true), если str2num успешно преобразовывает chr. В противном случае str2num возвращает 0 (false).

Примеры

свернуть все

Преобразуйте векторы символов, которые представляют числа.

X = str2num('100')
X = 100
X = str2num('100 200 300 400')
X = 1×4

   100   200   300   400

str2num интерпретирует экспоненциальное представление.

X = str2num('12e-3 5.9e-3 -8.1e-3 2.56e-3; 5 11.2 17.9 33')
X = 2×4

    0.0120    0.0059   -0.0081    0.0026
    5.0000   11.2000   17.9000   33.0000

Преобразуйте вектор символа в 16-битное целое число без знака с помощью str2num и uint16.

X = str2num('256');
X = uint16(X)
X = uint16
    256

Преобразуйте вектор символа, содержащий true и false к логическому массиву.

X = str2num('false true true false')
X = 1x4 logical array

   0   1   1   0

Возвратите состояние преобразования, которое перестало работать. tf является 0, и X является пустой матрицей.

[X,tf] = str2num('12e-3 m/s, 5.9e-3 m/s')
X =

     []
tf = logical
   0

Если вы удаляете дополнительный текст (m/s), то преобразование успешно выполняется.

[X,tf] = str2num('12e-3 5.9e-3')
X = 1×2

    0.0120    0.0059

tf = logical
   1

Входные параметры

свернуть все

Представление числовой матрицы, заданной как символьный массив или скаляр строки.

Текст, который представляет числовую матрицу, может содержать пробелы, запятые или точки с запятой, такие как '5', '10,11,12' или '5,10;15,20'. В дополнение к числовым значениям и разделителям, входной текст также может включать любой из следующих элементов:

  • Десятичная точка

  • Продвижение + или знаков -

  • Буква e или d, предшествующий степени 10 масштабных коэффициентов

  • Буква i или j, указывающий на комплексное или мнимое число

  • true или false, указывающий на логические значения

Пробелы или отсутствие их, могут быть значительными. Например, str2num('1+2i') и str2num('1 + 2i') оба возвращают комплексное число 1.0000 + 2.0000i, в то время как str2num('1 +2i') возвращает 1 2 векторный [1.0000 + 0.0000i 0.0000 + 2.0000i]. Чтобы избежать этой проблемы, используйте функцию str2double.

str2num преобразовывает символьные массивы и скаляры строки только. Чтобы преобразовать нескалярные массивы строк или массивы ячеек к числовым массивам, используйте функцию str2double.

Выходные аргументы

свернуть все

Выходной массив, возвращенный как числовая матрица.

Истинный или ложный результат, возвращенный как 1 или 0 типа данных logical.

Представлено до R2006a

Была ли эта тема полезной?