Формат выходных полей, заданный с помощью операторов форматирования. formatSpec
также может включать обычный текст и специальные символы.
Если formatSpec
включает буквенные тексты, представляющие побочные символы, такие как \n
, затем num2str
преобразует символы побега.
formatSpec
может быть вектор символов в одинарных кавычках или, начиная с R2016b, строковым скаляром.
Оператор форматирования
Оператор форматирования начинается со знака процента %
, и заканчивается символом преобразования. Требуется символ преобразования. Вы также можете задать идентификатор, флаги, ширину поля, точность и операторы подтипа между %
и символ преобразования. (Пространства недопустимы между операторами и показаны здесь только для читаемости).
Символ преобразования
В этой таблице показаны символы преобразования в форматирование числовых и символьных данных в виде текста.
Тип значения | Преобразование | Подробнее |
---|
Целое число, со знаком | %d или %i
| Основа 10 |
Целое число, без знака | %u
| Основа 10 |
%o
| База 8 (октальная) |
%x
| База 16 (шестнадцатеричная), строчные буквы a – f |
%X
| То же, что и %x , заглавные буквы A – F |
Число с плавающей запятой | %f
| Обозначение с фиксированной точкой (Используйте оператор точности, чтобы задать количество цифр после десятичной точки.) |
%e
| Экспоненциальное обозначение, такое как 3.141593e+00 (Используйте оператор точности, чтобы задать количество цифр после десятичной точки.) |
%E
| То же, что и %e , но в верхнем регистре, например 3.141593E+00 (Используйте оператор точности, чтобы задать количество цифр после десятичной точки.) |
%g
| Чем компактнее %e или %f , без конечных нулей (Используйте оператор точности, чтобы задать количество значащих цифр.) |
%G
| Чем компактнее %E или %f , без конечных нулей (Используйте оператор точности, чтобы задать количество значащих цифр.) |
Символы или строки | %c
| Один символ |
%s
| Вектор символов или строковые массивы. Тип выходного текста совпадает с типом formatSpec . |
Необязательные операторы
Необязательный идентификатор, флаги, ширина поля, точность и операторы подтипа дополнительно определяют формат выходного текста.
Идентификатор
Примечание: В отличие от sprintf
функция, num2str
не поддерживает идентификаторы.
Флаги
'–'
| Слева-оправдать.
Пример:
%-5.2f
Пример:
%-10s |
'+'
| Всегда печатайте символ (+ или -) для любого числового значения.
Пример:
%+5.2f Текст с выравниванием по правому краю.
Пример:
%+10s |
' '
| Вставьте пространство перед значением.
Пример:
% 5.2f |
'0'
| Заполните до ширины поля нулями перед значением.
Пример:
%05.2f |
'#'
| Измените выбранные числовые преобразования: Для %o , %x , или %X , печать 0 , 0x , или 0X префикс. Для %f , %e , или %E , напечатайте десятичную точку, даже если точность равна 0. Для %g или %G , не удаляйте конечные нули или десятичную точку.
Пример:
%#5.0f |
Ширина поля
Минимальное количество символов для печати.
Пример:
'%5d'
печатает intmax
как 2147483647
потому что значение, возвращенное intmax
превышает минимальное количество символов для печати.
Если количество символов для печати меньше ширины поля, compose
function pads к ширине поля с пространствами перед значением, если иное не задано флагами.
Однако, num2str
функция не заполняет ширину поля с помощью пространств.
Точность
Количество цифр для печати.
Для %f , %e , или %E | Количество цифр справа от десятичной точки
Пример:
'%.4f' печатает pi как '3.1416' |
Для %g или %G | Количество значащих цифр
Пример:
'%.4g' печатает pi как '3.142' |
Пример:
'%6.4f'
печатает pi
как '3.1416'
.
Примечание
Если вы задаете оператор точности для значений с плавающей точкой, который превышает точность входного типа числовых данных, результаты могут не совпадать с заданной точностью. Результат зависит от оборудования компьютера и операционной системы.
Подтипы
Можно использовать оператор подтипа, чтобы напечатать значение с плавающей точкой как его восьмеричное, десятичное или шестнадцатеричное значение. Оператор подтипа непосредственно предшествует символу преобразования. В этой таблице показаны преобразования, которые могут использовать подтипы.
Вход значения | Подтип и символ преобразования | Выход значения |
---|
Число с плавающей запятой | %bx или %bX
%bo
%bu
| Шестнадцатеричное, восьмеричное или десятичное значение двойной точности
Пример:
%bx печатает pi как 400921fb54442d18 |
%tx или %tX
%to
%tu
| Шестнадцатеричное, восьмеричное или десятичное значение с одной точностью
Пример:
%tx печатает pi как 40490fdb |
Текст до или после операторов форматирования
formatSpec
может также включать дополнительный текст перед знаком процента, %
, или после символа преобразования. Текст может быть:
Обычный текст для печати.
Специальные символы, которые вы не можете ввести как обычный текст. В этой таблице показано, как представлять специальные символы в formatSpec
.
Специальный символ | Представление |
---|
Одинарная кавычка | ''
|
Процент символа | %%
|
Обратная косая черта | \\
|
Тревога | \a
|
Клавиша Backspace | \b
|
Подача формы | \f
|
Новая линия | \n
|
Возврат каретки | \r
|
Горизонтальная вкладка | \t
|
Вертикальная вкладка | \v
|
Символ, чей Юникод® числовое значение может быть представлено шестнадцатеричным числом, N | \xN
Пример:
sprintf('\x5A') возвращает 'Z' |
Символ, числовое значение в Юникоде которого может быть представлено восьмеричным числом N | \N
Пример:
sprintf('\132') возвращает 'Z' |
Заметное поведение преобразований с операторами форматирования
Числовые преобразования печатают только действительный компонент комплексных чисел.
Если вы задаете преобразование, которое не соответствует данным, такое как преобразование текста для числового значения, MATLAB® переопределяет заданное преобразование и использует %e
.
Пример:
'%s'
преобразует pi
на 3.141593e+00
.
Если вы применяете преобразование текста (либо %c
или %s
) в целочисленные значения, MATLAB преобразует значения, которые соответствуют допустимым символьным кодам, в символы.
Пример:
'%s'
преобразует [65 66 67]
на ABC
.