В этом примере показано, как преобразовать числовые значения в текст и добавить их к большим частям текста. Например, можно добавить метку или заголовок на график, где метка содержит число, описывающее характеристику графика.
Перед 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)

Иногда существующий текст хранится в символьных векторах или массивах ячеек символьных векторов. Тем не менее, 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'
char | compose | dec2bin | dec2hex | plus | string