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

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

Можно преобразовать числовые значения в строки или векторы символов. Можно преобразовать их в десятичные, шестнадцатеричные, или бинарные текстовые представления. Те же методы также преобразуют 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"

Смотрите также

| | | | | | | | | | | |

Похожие темы