exponenta event banner

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

В этом примере показано, как преобразовать числовые значения в текст и добавить их к большим частям текста. Например, можно добавить метку или заголовок на график, где метка содержит число, описывающее характеристику графика.

Преобразовать в строки

Перед 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)

Figure contains an axes. The axes with title Sine Wave, Frequency = 0.15915 Hz contains an object of type line.

Иногда существующий текст хранится в символьных векторах или массивах ячеек символьных векторов. Тем не менее, plus оператор также автоматически преобразует эти типы данных в строки, если другой операнд является строкой. Чтобы объединить числовые значения с этими типами данных, сначала преобразуйте числовые значения в строки, а затем используйте plus для объединения текста.

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

Коды символов

Если данные содержат целые числа, представляющие значения Юникода ®, используйте char для преобразования значений в соответствующие символы. Выходные данные представляют собой символьный вектор или массив.

u = [77 65 84 76 65 66];
c = char(u)
c = 
'MATLAB'

Преобразование значений Юникода также позволяет включать в текст специальные символы. Например, значение Юникода для символа градуса равно 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'

См. также

| | | | |

Связанные темы