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