Формат выходных полей, заданный с помощью операторов форматирования. formatSpec также может включать обычный текст и специальные символы.
Если formatSpec включает литеральный текст, представляющий escape-символы, например, \n, то sprintf переводит символы escape.
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. |
Дополнительные операторы
Опциональные операторы идентификатора, флагов, ширины поля, точности и подтипа дополнительно определяют формат выходного текста.
Идентификатор
Порядок обработки входных аргументов функции. Использовать синтаксис n$, где n представляет позиции других входных аргументов в вызове функции.
Пример:
('%3$s %2$s %1$s %2$s','A','B','C') печать входных аргументов 'A', 'B', 'C' следующим образом: C B A B.
Примечание.Если входной аргумент является массивом, нельзя использовать идентификаторы для указания конкретных элементов массива из этого входного аргумента.
Флаги
'–'
| Выравнивание слева.
Пример:
%-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 |
Ширина поля
Минимальное количество печатаемых символов. Оператор ширины поля может быть числом или звездочкой (*) для ссылки на входной аргумент.
При указании * в качестве оператора ширины поля другие входные аргументы должны содержать как ширину, так и значение для печати. Ширина и значения могут быть парами аргументов или парами в числовом массиве. С * в качестве оператора ширины поля можно печатать различные значения с различной шириной.
Пример: Входные аргументы ('%12d',intmax) эквивалентны ('%*d',12,intmax).
Пример: Входные аргументы ('%*d',[2 10 5 100]) вернуть '10 100', с двумя помещениями, выделенными для 10 и пять пробелов для 100. В качестве альтернативы можно также указать ширину поля и значения в виде нескольких аргументов, как в ('%*d',2,10,5,100).
Если флажками не указано иное, то панель функций соответствует ширине поля с пробелами перед значением.
Точность
Для %f, %e, или %E | Число цифр справа от десятичной запятой
Пример:
'%.4f' отпечатки pi как '3.1416' |
Для %g или %G | Количество значащих цифр
Пример:
'%.4g' отпечатки pi как '3.142' |
Оператор точности может быть числом или звездочкой (*) для ссылки на аргумент.
При указании * в качестве оператора точности поля другие входные аргументы должны обеспечивать и точность, и значение для печати. Уточнения и значения могут быть парами аргументов или парами в числовом массиве. С * в качестве оператора точности можно печатать различные значения в различных точностях.
При указании *.* в качестве операторов ширины поля и точности необходимо указать ширину поля, точность и значения в виде триплетов.
Пример: Входные аргументы ('%.4f',pi) эквивалентны ('%.*f',4,pi).
Пример: Входные аргументы ('%6.4f',pi) эквивалентны ('%.*f',6,4,pi).
Пример: Входные аргументы ('%*.*f',6,4,pi,9,6,exp(1)) вернуть '3.1416 2.718282', с 9 и 6 как ширина поля и точность для вывода exp(1).
Примечание
Если указать оператор точности для значений с плавающей запятой, превышающих точность входного числового типа данных, результаты могут не соответствовать введенным значениям указанной точности. Результат зависит от оборудования компьютера и операционной системы.
Подтипы
Оператор подтипа можно использовать для печати значения с плавающей запятой в виде восьмеричного, десятичного или шестнадцатеричного значения. Оператор подтипа непосредственно предшествует символу преобразования. В этой таблице показаны преобразования, которые могут использовать подтипы.
Тип входного значения | Подтип и символ преобразования | Тип выходного значения |
|---|
Число с плавающей запятой | %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.