В этом примере показано, как преобразовать числовые значения в текст и добавить их к большим частям текста. Например, вы можете хотеть добавить метку или заголовок на график, где метка включает номер, который описывает характеристику графика.
Можно преобразовать числовые значения в строки или векторы символов. Можно преобразовать их в десятичные, шестнадцатеричные, или бинарные текстовые представления. Те же методы также преобразуют datetime или duration значения к тексту.
Чтобы преобразовать номер в строку, которая представляет его, используйте string функция.
A = 3.1416
A = 3.1416
str = string(A)
str = "3.1416"
string функция преобразует числовой массив в массив строк, имеющий тот же размер.
A = [256 3.1416 8.9e-3]
A = 1×3
256.0000 3.1416 0.0089
str = string(A)
str = 1x3 string
"256" "3.1416" "0.0089"
В то время как char функционируйте также преобразует числа в символы, это не выполняет то же преобразование как string. Скорее это преобразует числа в отдельные символы (например, преобразовывая 65 к букве A). Это не рекомендуется для преобразования чисел с плавающей запятой к строкам, которые представляют их.
Можно задать формат синтезируемого текста с помощью composesprintf, или num2str функции. Эти функции принимают спецификаторы формата так, чтобы можно было задать точность, ширину поля и экспоненциальное представление.
str = compose("%9.7f",pi)str = "3.1415927"
Если вход является числовым массивом, то compose возвращает массив строк. Возвратите массив строк, который представляет числа с помощью экспоненциального представления.
A = [256 3.1416 8.9e-3];
str = compose("%5.2e",A)str = 1x3 string
"2.56e+02" "3.14e+00" "8.90e-03"
composesprintf, и num2str функции возвращают различные типы выхода.
compose возвращает массив строк, который имеет тот же размер как входной числовой массив.
sprintf возвращает вектор символов или строковый скаляр, даже когда вход является числовым массивом.
num2str всегда возвращает вектор символов.
Лучшая практика состоит в том, чтобы использовать любого string или compose функционируйте, чтобы преобразовать значения.
Используйте string преобразовывать числовые значения.
Используйте compose также управлять форматом синтезируемого текста.
Избегайте char функция. Это обрабатывает числа как целые числа, представляющие значения Unicode, и преобразует их в соответствующие символы.
Типичное использование для этих функций должно преобразовать числа в текст так, чтобы можно было добавить их к другим частям текста, таким как имена файлов или метки на графике.
Например, постройте синусоиду и добавьте заголовок на график. Вычислите частоту волны и добавьте строку, представляющую то значение в заголовке графика.
X = linspace(0,2*pi); Y = sin(X); plot(X,Y) xlabel("X") ylabel("Y") freq = string(1/(2*pi)); titleStr = append("Sine Wave, Frequency = ",freq," Hz")
titleStr = "Sine Wave, Frequency = 0.15915 Hz"
title(titleStr)

Как альтернатива, можно использовать plus оператор, чтобы добавить текст в конец строки. Однако plus векторы символов обработок как числовые массивы.
titleStr = "Sine Wave, Frequency = " + freq + " Hz"
titleStr = "Sine Wave, Frequency = 0.15915 Hz"
append функция добавляет текст к строковым массивам, векторам символов и массивам ячеек из символьных векторов. Поэтому лучшая практика состоит в том, чтобы использовать append функция.
Можно представлять шестнадцатеричные и двоичные значения в коде или текст использования или использование литералов. Рекомендуемый способ представлять их состоит в том, чтобы записать им как литералы. Можно записать шестнадцатеричные и бинарные литералы с помощью 0x и 0b префиксы соответственно. Однако может иногда быть полезно представлять такие значения как текст, с помощью dec2hex или dec2bin функции.
Например, установите немного в двоичном значении. Если вы задаете двоичное значение с помощью литерала, то оно хранится как целое число. После установки одного из битов отобразите новое двоичное значение как текст с помощью dec2bin функция.
register = 0b10010110
register = uint8
150
register = bitset(register,5,0)
register = uint8
134
binStr = dec2bin(register)
binStr = '10000110'
MATLAB обеспечивает datetime и duration типы данных, чтобы сохранить даты и времена и обработать их как числовые значения. Чтобы преобразовать такие значения в текст, представляющий даты и времена, используйте string и char функции.
Представляйте текущую дату и время как строка.
d = datetime('now')d = datetime
29-Jan-2020 11:53:20
str = string(d)
str = "29-Jan-2020 11:53:20"
Представляйте массив значений длительности.
D = seconds(1:5)
D = 1x5 duration
1 sec 2 sec 3 sec 4 sec 5 sec
str = string(D)
str = 1x5 string
"1 sec" "2 sec" "3 sec" "4 sec" "5 sec"
append | bitset | char | compose | datetime | dec2bin | dec2hex | duration | plot | plus | seconds | string | title