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'

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

rng('default')
A = randn([2,2]);
s = num2str(A,3)
s = 2x15 char array
    '0.538     -2.26'
    ' 1.83     0.862'

Отобразите pi как число с плавающей запятой до заданной точности.

formatSpec = '%.2f';
s = num2str(pi,formatSpec)
s = 
'3.14'

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

свернуть все

Входной массив, заданный как числовой массив.

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

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

Примечание

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

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

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

Если formatSpec включает буквенные тексты, представляющие побочные символы, такие как \n, затем num2str преобразует символы побега.

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.

Необязательные операторы

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

  • Идентификатор

    Примечание: В отличие от 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.

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

свернуть все

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

Совет

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

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

  • Если вы задаете недопустимый оператор форматирования или специальный символ, то num2str печатает весь текст до недопустимого оператора или символа и отбрасывает остальное.

    Пример: Если formatSpec является 'value = %z', затем num2str печатает 'value =' потому что %z не является оператором форматирования.

    Пример: Если formatSpec является 'character \x99999 = %s', затем num2str печатает 'character' потому что \x99999 не является допустимым специальным символом.

Алгоритмы

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

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

.

См. также

| | | | | |

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