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

Функциональные сводные данные

Функции, перечисленные в этой таблице, обеспечивают много способов преобразовать символьные массивы в числовые данные.

Функция

Описание

Пример

uintN (e. g., uint8)

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

'Hi'72 105

str2num

Преобразуйте тип символов в числовой тип.

'72 105'[72 105]

str2double

Подобный str2num, но предложениям лучшая производительность и работает с массивами строк и массивами ячеек из символьных векторов.

"72" "105" [72 105]

{'72' '105'} [72 105]

hex2num

Преобразуйте числовой тип в тип символов заданной точности, возвратив символьный массив, который может оценить MATLAB®.

'A''-1.4917e-154'

hex2dec

Преобразуйте тип символов шестнадцатеричной основы к положительному целому числу.

'A'10

bin2dec

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

'1010'10

base2dec

Преобразуйте тип символов любого основания системы счисления от 2 до 36 до десятичного числа.

'12'10 (если base == 8)

Преобразование от кода символа

Символьные массивы и массивы строк хранят каждый символ как 16-битное числовое значение. Используйте одну из целочисленных функций преобразования (e. g., uint8), или double функционируют, чтобы преобразовать символы в их числовые значения и char, чтобы вернуться к символьному представлению:

name = 'Thomas R. Lee';

name = double(name)
name =
    84  104  111  109  97  115  32  82  46  32  76  101  101

name = char(name)
name =

    'Thomas R. Lee'

Преобразуйте текст, который Представляет Числовые значения

Используйте str2num, чтобы преобразовать символьный массив в числовое значение, которое он представляет:

chr = '37.294e-1';

val = str2num(chr)
val =

    3.7294

Функция str2double преобразовывает массив строк или массив ячеек из символьных векторов к с двойной точностью значения, которые они представляют:

c = {'37.294e-1'; '-58.375'; '13.796'};
str = string({'3.14159','2.718'});

d = str2double(c)

d =

    3.7294
  -58.3750
   13.7960

x = str2double(str)

x =

    3.1416    2.7180

whos
  Name      Size            Bytes  Class     Attributes

  c         3x1               380  cell                
  d         3x1                24  double              
  str       1x2               196  string              
  x         1x2                16  double              

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

Чтобы преобразовать от символьного представления недесятичного номера к значению того номера, используйте одну из этих функций: hex2num, hex2dec, bin2dec или base2dec.

hex2num и функции hex2dec оба берут шестнадцатеричный (базируйтесь 16), входные параметры, но hex2num возвращает IEEE® с двойной точностью число с плавающей запятой, которое это представляет, в то время как hex2dec преобразовывает в десятичное целое число.

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