num2str

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

Описание

пример

s = num2str(A) преобразует числовой массив в символьный массив, который представляет числа. Выходной формат зависит от величин исходных значений. num2str полезно для графиков маркировки и создания заголовков с числовыми значениями.

пример

s = num2str(A,precision) возвращает символьный массив, который представляет числа с максимальным количеством значительных цифр, заданных precision.

пример

s = num2str(A,formatSpec) применяет формат, заданный formatSpec ко всем элементам A.

Примеры

свернуть все

Преобразуйте значения с плавающей точкой, возвращенные pi и eps к векторам символов.

s = num2str(pi)
s = 
'3.1416'
s = num2str(eps)
s = 
'2.2204e-16'

Задайте максимальное количество значительных цифр для значений с плавающей точкой.

A = gallery('normaldata',[2,2],0);
s = num2str(A,3)
s = 2x16 char array
    '-0.433     0.125'
    ' -1.67     0.288'

Задайте ширину, точность и другое форматирование для массива значений с плавающей точкой.

A = gallery('uniformdata',[2,3],0) * 9999;
s = num2str(A,'%10.5e\n')
s = 2x35 char array
    '9.50034e+03...'
    '2.31115e+03...'

Формат '%10.5e' печать каждое значение в экспоненциальном формате с пятью десятичными разрядами и '\n' распечатывает символ новой строки.

Входные параметры

свернуть все

Входной массив в виде числового массива.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Максимальное количество значительных цифр в выводимой строке в виде положительного целого числа.

Примечание

Если вы задаете precision чтобы превысить точность входа тип данных с плавающей точкой, результаты не могут совпадать с входными значениями к точности, которую вы задали. Результат зависит от вашего компьютерного оборудования и операционной системы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Формат выходных полей, заданных операторов форматирования использования. formatSpec также может включать обычный текст и специальные символы.

formatSpec может быть вектор символов в одинарных кавычках, или, запускающийся в R2016b, строковом скаляре.

Оператор форматирования

Оператор форматирования запускается со знака процента, %, и концы с символом преобразования. Символ преобразования требуется. Опционально, можно задать идентификатор, флаги, ширину поля, точность, и выделить подтипы в операторах между % и символ преобразования. (Пробелы недопустимы между операторами и показаны здесь только для удобочитаемости).

Символ преобразования

Эта таблица показывает символы преобразования, чтобы отформатировать числовые и символьные данные как текст.

Тип значенияПреобразованиеДетали

Целое число, подписанное

%d или %i

Основа 10

Целое число, без знака

%u

Основа 10

%o

Базируйтесь 8 (восьмеричный)

%x

Основывайте 16 (шестнадцатеричных), строчных букв aF

%X

То же самое как %x, прописные буквы AF

Число с плавающей запятой

%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'BC можно следующим образом: C B A B.

    Примечание: Если входной параметр является массивом, вы не можете использовать идентификаторы, чтобы задать конкретные элементы массива от того входного параметра.

  • Флаги

    '–'

    Лево-выровнять по ширине.
    Пример: %-5.2f
    Пример: %-10s

    '+'

    Всегда распечатывайте символ знака (+ или –) для любого числового значения.
    Пример: %+5.2f
    Право - выравнивает текст.
    Пример: %+10s

    ' '

    Вставьте пробел перед значением.
    Пример: % 5.2f

    '0'

    Заполните к ширине поля нулями перед значением.
    Пример: %05.2f

    '#'

    Измените выбранные числовые преобразования:

    • Для %oX, или %X, распечатайте 0, 0x, или 0X префикс.

    • Для %fE, или %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).

    Функция заполняет к ширине поля пробелами перед значением, если в противном случае не задано флагами.

  • Точность

    Для %fE, или %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.

Типы данных: char | string

Выходные аргументы

свернуть все

Текстовое представление входного массива, возвращенного как символьный массив.

Советы

num2str не принимает позиционные идентификаторы в formatSpec входной параметр. Например, num2str([14 15],'%2$X %1$o) возвращает ошибку.

Позиционные идентификаторы задают порядок в который входные параметры процессов оператора форматирования функции, не элементы входного массива. Когда вы вызываете num2str, существует только один входной параметр, который имеет числа, чтобы преобразовать.

Алгоритмы

num2str обрезки любые ведущие пробелы от символьного массива, даже когда formatSpec включает флаг пробела. Например, num2str(42.67,'% 10.2f') возвращает символьный массив 1 на 5 '42.67'.

Расширенные возможности

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

| | | |

Представлено до R2006a