Spec-Zone.ru › Octave 5

5.3.2 Преобразование числовых данных в строки

Помимо функций конкатенации строк (см. Конкатенация строк), которые преобразуют числовые данные в соответствующие символы UTF-8, существуют несколько функций для форматирования числовых данных в виде строк. mat2str и num2str преобразуют вещественные или комплексные матрицы, а int2str преобразует целочисленные матрицы. int2str берет действительную часть комплексных значений и округляет дробные значения до целых. Более гибкий способ форматирования числовых данных в виде строк — функция sprintf (см. Форматированный вывод, sprintf).

s = mat2str (x, n)
s = mat2str (x, n, "class")

Форматирование вещественных, комплексных и логических матриц в виде строк.

Возвращаемая строка может быть использована для восстановления исходной матрицы с помощью функции eval.

Точность значений задается n. Если n — скаляр, то действительная и мнимая части матрицы выводятся с одинаковой точностью. В противном случае n(1) определяет точность действительной части, а n(2) определяет точность мнимой части. По умолчанию n равен 15.

Если задан аргумент "class", то класс x включается в строку таким образом, что eval приведет к построению матрицы того же класса.

mat2str ([ -1/3 + i/7; 1/3 - i/7 ], [4 2])
     ⇒ "[-0.3333+0.14i;0.3333-0.14i]"

mat2str ([ -1/3 +i/7; 1/3 -i/7 ], [4 2])
     ⇒ "[-0.3333+0i 0+0.14i;0.3333+0i -0-0.14i]"

mat2str (int16 ([1 -1]), "class")
     ⇒ "int16([1 -1])"

mat2str (logical (eye (2)))
     ⇒ "[true false;false true]"

isequal (x, eval (mat2str (x)))
     ⇒ 1

См. также: sprintf, num2str, int2str.

num2str (x)
num2str (x, precision)
num2str (x, format)

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

Необязательный второй аргумент может задавать количество значащих цифр (precision), используемых в выводе, или строку шаблона формата (format), как в sprintf (см. Форматированный вывод). num2str также может обрабатывать комплексные числа.

Примеры:

num2str (123.456)
  ⇒ 123.456

num2str (123.456, 4)
  ⇒ 123.5

s = num2str ([1, 1.34; 3, 3.56], "%5.1f")
  ⇒ s =
       1.0  1.3
       3.0  3.6
whos s
  ⇒ Variables in the current scope:
        Attr Name        Size                     Bytes  Class
        ==== ====        ====                     =====  =====
             s           2x8                         16  char
     Total is 16 elements using 16 bytes

num2str (1.234 + 27.3i)
  ⇒ 1.234+27.3i

Функция num2str не очень гибкая. Для лучшего контроля над результатами используйте sprintf (см. Форматированный вывод).

Примечания по программированию:

Для совместимости с MATLAB ведущие пробелы удаляются перед возвратом строки.

Целые числа, превышающие flintmax, могут отображаться некорректно.

Для комплексных x строка формата может содержать только одну спецификацию преобразования вывода и ничего больше. В противном случае результаты будут непредсказуемыми.

Любой необязательный format, указанный программистом, используется без изменений. Это отличается от MATLAB, который изменяет format на основе внутренних эвристик.

См. также: sprintf, int2str, mat2str.

int2str (n)

Преобразование целого числа (или массива целых чисел) в строку (или символьный массив).

int2str (123)
  ⇒ 123

s = int2str ([1, 2, 3; 4, 5, 6])
  ⇒ s =
        1  2  3
        4  5  6

whos s
  ⇒ Variables in the current scope:
        Attr Name        Size                     Bytes  Class
        ==== ====        ====                     =====  =====
             s           2x7                         14  char
     Total is 14 elements using 14 bytes

Эта функция не очень гибкая. Для лучшего контроля над результатами используйте sprintf (см. Форматированный вывод).

Примечания по программированию:

Нецелые числа округляются до целых перед отображением. Отображается только действительная часть комплексных чисел.

См. также: sprintf, num2str, mat2str.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Converting-Numerical-Data-to-Strings.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API