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