转换为字符串

在 R2016b 之前,使用num2str转换为字符向量。

要将数字转换为表示该数字的字符串,请使用 string 函数。

str = string(pi)

str =

"3.1416"

string 函数将数值数组转换为大小相同的字符串数组。

A = [256 pi 8.9e-3];

str = string(A)

str = 1x3 string

"256" "3.141593" "0.0089"

您可以使用 compose 函数指定输出文本的格式,该函数接受精度、字段宽度和指数记数法的格式设定符。

str = compose("%9.7f",pi)

str =

"3.1415927"

如果输入是数值数组,则 compose 返回字符串数组。返回用指数记数法表示数字的字符串数组。

A = [256 pi 8.9e-3];

str = compose("%5.2e",A)

str = 1x3 string

"2.56e+02" "3.14e+00" "8.90e-03"

将数值添加到字符串

在 R2016b 之前,将数字转换为字符向量,并用括号[]将字符串联起来。

组合文本和数值的最简单方法是使用 plus 运算符 (+)。当其他操作数为字符串时,此运算符自动将数值转换为字符串。

例如,绘制一个正弦波。计算该波的频率,并在绘图的标题中添加表示该值的字符串。

X = linspace(0,2*pi);

Y = sin(X);

plot(X,Y)

freq = 1/(2*pi);

str = "Sine Wave, Frequency = " + freq + " Hz"

str =

"Sine Wave, Frequency = 0.15915 Hz"

title(str)

108075da3be95394a09c572ee695a4b1.png

有时现有文本存储在字符向量或字符向量元胞数组中。但是,当另一项操作数是字符串时,plus 运算符还会自动将这些类型的数据转换为字符串。要将数值与这些类型的数据进行组合,需要先将数值转换为字符串,然后使用 plus 组合文本。

str = 'Sine Wave, Frequency = ' + string(freq) + {' Hz'}

str =

"Sine Wave, Frequency = 0.15915 Hz"

字符代码

如果您的数据包含表示 Unicode® 值的整数,请使用 char 函数将这些值转换为对应的字符。输出是字符向量或数组。

u = [77 65 84 76 65 66];

c = char(u)

c =

'MATLAB'

转换 Unicode 值还允许您在文本中包含特殊字符。例如,度符号的 Unicode 值是 176。要将 char(176) 添加到字符串,请使用 plus。

deg = char(176);

temp = 21;

str = "Temperature: " + temp + deg + "C"

str =

"Temperature: 21°C"

在 R2016b 之前,使用num2str将数值转换为字符向量,然后串联。

str = ['Temperature: ' num2str(temp) deg 'C']

str =

'Temperature: 21°C'

十六进制和二进制值

自 R2019b 开始提供

您可以使用文本或字面值在代码中表示十六进制和二进制值。推荐的表示方法是将它们写为字面值。您可以分别使用 0x 和 0b 前缀来编写十六进制和二进制字面值。但是,使用 dec2hex 或 dec2bin 函数将这些值表示为文本有时会很有用。

例如,在二进制值中设置一个位。如果您使用字面值指定二进制值,则它将存储为整数。设置其中一个位后,可使用 dec2bin 函数将新的二进制值显示为文本。

register = 0b10010110

register = uint8

150

register = bitset(register,5,0)

register = uint8

134

binStr = dec2bin(register)

binStr =

'10000110'

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐