exponenta event banner

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 включает литеральный текст, представляющий escape-символы, например, \n, то num2str переводит символы escape.

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 панели функций до ширины поля с пробелами перед значением, если флагами не указано иное.

    Тем не менее, 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