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

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

    '#'

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

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

    • Для %fE, или %E, распечатайте десятичную точку, даже когда точность 0.

    • Для %g или %G, не удаляйте конечные нули или десятичную точку.

    Пример: %#5.0f

  • Ширина поля

    Минимальное количество символов, чтобы распечатать.

    Пример: '%5d' печать intmax как 2147483647 потому что значение, возвращенное intmax превышает минимальное количество символов, чтобы распечатать.

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

    Однако num2str функция не заполняет к ширине поля пробелами.

  • Точность

    Количество цифр, чтобы распечатать.

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

    Символ, чей 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.

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

свернуть все

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

Советы

  • 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