将数值转换为文本
此示例说明如何将数值转换为文本,并将它们追加到更大的文本片段中。例如,您可能要向绘图添加标签或标题,其中标签包括说明绘图特性的数字。
转换为字符串
要将数字转换为表示该数字的字符串,请使用 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"
将数值添加到字符串
组合文本和数值的最简单方法是使用 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)
有时现有文本存储在字符向量或字符向量元胞数组中。但是,当另一项操作数是字符串时,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"
十六进制和二进制值
您可以使用文本或字面值在代码中表示十六进制和二进制值。推荐的表示方法是将它们写为字面值。您可以分别使用 0x
和 0b
前缀来编写十六进制和二进制字面值。但是,使用 dec2hex
或 dec2bin
函数将这些值表示为文本有时会很有用。
例如,在二进制值中设置一个位。如果您使用字面值指定二进制值,则它将存储为整数。设置其中一个位后,可使用 dec2bin
函数将新的二进制值显示为文本。
register = 0b10010110
register = uint8
150
register = bitset(register,5,0)
register = uint8
134
binStr = dec2bin(register)
binStr = '10000110'
另请参阅
dec2bin
| dec2hex
| char
| string
| compose
| plus