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
- : 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 на основе внутренних эвристик.
- : 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(см. Форматированный вывод).Примечания по программированию:
Нецелые числа округляются до целых перед отображением. Отображается только действительная часть комплексных чисел.
© 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/v6.4.0/Converting-Numerical-Data-to-Strings.html