zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Matlab中从字符数组转换为数值

2023-09-11 14:14:49 时间

目录

从字符数组转换为数值

从字符代码转换

转换代表数值的文本

从特定基数转换


从字符数组转换为数值

        此表中列出的函数提供了多种将字符数组转换为数值数据的方法。

函数

说明

示例

double,single

uint8,uint16,uint32,uint64

int8,int16,int32,int64

将字符转换为表示该字符的整数代码。

'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 位数值。使用一个整数转换函数(例如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、hex2de、bin2dec或base2dec。

        hex2num和hex2dec函数都接受十六进制(以16为基数)输入,但hex2num返回它表示的 IEEE® 双精度浮点数,而hex2dec则将输入转换为十进制整数。