Формат выходных полей, заданных операторов форматирования использования. formatSpec
также может включать обычный текст и специальные символы.
Если formatSpec
включает буквенный текст, представляющий символы ESC, такие как \n
, затем sprintf
переводит символы ESC.
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
|
Символ, чей Unicode® числовое значение может быть представлено шестнадцатеричным номером, N | \xN
Пример:
sprintf('\x5A') возвращает 'Z' |
Символ, числовое значение Unicode которого может быть представлено восьмеричным числом, N | \N
Пример:
sprintf('\132') возвращает 'Z' |
Известное поведение преобразований с операторами форматирования
Числовые преобразования распечатывают только действительный компонент комплексных чисел.
Если вы задаете преобразование, которое не соответствует данным, таким как текстовое преобразование для числового значения, MATLAB® заменяет заданное преобразование и использует %e
.
Примеры
преобразует pi
к 3.141593e+00
.
Если вы применяете текстовое преобразование (любой %c
или %s
) к целочисленным значениям MATLAB преобразует значения, которые соответствуют кодам допустимого символа к символам.
Примеры
преобразует [65 66 67]
к ABC
.