Spec-Zone.ru › Octave 6

5.6 Преобразования строк

Octave поддерживает различные виды преобразований между строками и числами. Например, можно преобразовать строку, содержащую шестнадцатеричное число, в число с плавающей точкой.

hex2dec ("FF")
      ⇒ 255
: bin2dec (s)

Возвращает десятичное число, соответствующее двоичному числу, представленному строкой s.

Например:

bin2dec ("1110")
     ⇒ 14

Пробелы игнорируются во время преобразования и могут использоваться для повышения удобочитаемости двоичного числа.

bin2dec ("1000 0001")
     ⇒ 129

Если s является матрицей строк, возвращает столбец с одним преобразованным числом на строку в s; Некорректные строки дают NaN.

Если s является массивом ячеек строк, возвращает столбец с одним преобразованным числом на каждый элемент ячейки в s.

См. также: dec2bin, base2dec, hex2dec.

: dec2bin (d, len)

Возвращает двоичное число, соответствующее неотрицательному целому числу d, в виде строки из единиц и нулей.

Например:

dec2bin (14)
     ⇒ "1110"

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

Необязательный второй аргумент len задаёт минимальное количество цифр в результате.

См. также: bin2dec, dec2base, dec2hex.

: dec2hex (d, len)

Возвращает шестнадцатеричную строку, соответствующую неотрицательному целому числу d.

Например:

dec2hex (2748)
     ⇒ "ABC"

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

Необязательный второй аргумент len задаёт минимальное количество цифр в результате.

См. также: hex2dec, dec2base, dec2bin.

: hex2dec (s)

Возвращает целое число, соответствующее шестнадцатеричному числу, представленному строкой s.

Например:

hex2dec ("12B")
      ⇒ 299
hex2dec ("12b")
      ⇒ 299

Если s является матрицей строк, возвращает столбец с одним преобразованным числом на строку в s; Некорректные строки дают NaN.

Если s является массивом ячеек строк, возвращает столбец с одним преобразованным числом на каждый элемент ячейки в s.

См. также: dec2hex, base2dec, bin2dec.

: dec2base (d, base)
: dec2base (d, base, len)

Возвращает строку символов в системе счисления base, соответствующую неотрицательному целому числу d.

dec2base (123, 3)
   ⇒ "11120"

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

Если base является строкой, то символы из base используются как символы для цифр d. Пробел (’ ’) не может использоваться как символ.

dec2base (123, "aei")
   ⇒ "eeeia"

Необязательный третий аргумент len задаёт минимальное количество цифр в результате.

См. также: base2dec, dec2bin, dec2hex.

: base2dec (s, base)

Преобразует s из строки цифр в системе счисления base в целое десятичное число (система счисления 10).

base2dec ("11120", 3)
   ⇒ 123

Если s является матрицей строк, возвращает столбец с одним значением на строку в s. Если строка содержит недопустимые символы, соответствующее значение будет NaN.

Если s является массивом ячеек строк, возвращает столбец с одним значением на каждый элемент ячейки в s.

Если base является строкой, символы из base используются как символы для цифр в s. Пробел (’ ’) не может использоваться как символ.

base2dec ("yyyzx", "xyz")
   ⇒ 123

См. также: dec2base, bin2dec, hex2dec.

: s = num2hex (n)
: s = num2hex (n, "cell")

Преобразует числовой массив в массив шестнадцатеричных строк.

Например:

num2hex ([-1, 1, e, Inf])
⇒ "bff0000000000000
    3ff0000000000000
    4005bf0a8b145769
    7ff0000000000000"

Если аргумент n — число с одинарной точностью или вектор, возвращаемая строка имеет длину 8. Например:

num2hex (single ([-1, 1, e, Inf]))
⇒ "bf800000
    3f800000
    402df854
    7f800000"

С необязательным вторым аргументом "cell", возвращается массив ячеек строк вместо символьного массива.

См. также: hex2num, hex2dec, dec2hex.

: n = hex2num (s)
: n = hex2num (s, class)

Приводит шестнадцатеричный символьный массив или массив ячеек строк к массиву чисел.

По умолчанию входной массив интерпретируется как шестнадцатеричное число, представляющее значение двойной точности. Если предоставлено меньше 16 символов, строки дополняются справа символами '0'.

Для матрицы строк hex2num каждая строка обрабатывается как отдельное число.

hex2num (["4005bf0a8b145769"; "4024000000000000"])
   ⇒ [2.7183; 10.000]

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

Вариант Символы
"int8" 2
"uint8" 2
"int16" 4
"uint16" 4
"int32" 8
"uint32" 8
"int64" 16
"uint64" 16
"char" 2
"single" 8
"double" 16

Например:

hex2num (["402df854"; "41200000"], "single")
   ⇒ [2.7183; 10.000]

См. также: num2hex, hex2dec, dec2hex.

: str2double (s)

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

Строка должна иметь один из следующих форматов, где a и b — вещественные числа, а мнимая единица — 'i' или 'j':

  • a + bi
  • a + b*i
  • a + i*b
  • bi + a
  • b*i + a
  • i*b + a

Если присутствуют, a и/или b имеют вид [+-]d[,.]d[[eE][+-]d], где скобки обозначают необязательные аргументы, а 'd' обозначает ноль или более цифр. Также принимаются специальные входные значения Inf, NaN, и NA.

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

Для не преобразуемых скалярных или строковых входных данных str2double возвращает NaN. Аналогично, для входных данных в виде матрицы строк str2double возвращает NaN для любой строки в s, которая не могла быть преобразована. Для массива ячеек str2double возвращает NaN для любого элемента в s, для которого преобразование не удалось. Обратите внимание, что числовые элементы в смешанном строковом/числовом массиве ячеек не являются строками, и преобразование для них завершится неудачей, вернув NaN.

str2double может заменить str2num, и это предотвращает риск безопасности при использовании eval на неизвестных данных.

См. также: str2num.

: strjust (s)
: strjust (s, pos)

Возвращает текст s, выровненный в соответствии с pos, который может быть "left", "center", или "right".

Если pos опущено, по умолчанию используется "right".

Нулевые символы заменяются пробелами. Все другие символы обрабатываются как не пробельные.

Пример:

strjust (["a"; "ab"; "abc"; "abcd"])
     ⇒
        "   a"
        "  ab"
        " abc"
        "abcd"

См. также: deblank, strrep, strtrim, untabify.

: x = str2num (s)
: [x, state] = str2num (s)

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

Примеры:

str2num ("3.141596")
      ⇒ 3.141596

str2num (["1, 2, 3"; "4, 5, 6"])
      ⇒ 1  2  3
         4  5  6

Необязательный второй выход state имеет логическое значение true, когда преобразование прошло успешно. Если преобразование завершилось неудачей, числовой выход x пуст, а state — false.

Предупреждение: Поскольку str2num использует функцию eval для преобразования, str2num выполнит любой код, содержащийся в строке s. Используйте str2double для более безопасного и быстрого преобразования.

Для массива ячеек строк используйте str2double.

См. также: str2double, eval.

: tolower (s)
: lower (s)

Возвращает копию строки или массива ячеек строк s, где каждый символ верхнего регистра заменяется соответствующим символом нижнего регистра; небуквенные символы остаются неизменными.

Например:

tolower ("MiXeD cAsE 123")
      ⇒ "mixed case 123"

См. также: toupper.

END_OF_DOCUMENT_MARKER
: toupper (s)
: upper (s)

Возвращает копию строки или ячейки строки s, в которой каждый символ в нижнем регистре заменён соответствующим символом в верхнем регистре; неалфавитные символы остаются неизменными.

Например:

toupper ("MiXeD cAsE 123")
      ⇒ "MIXED CASE 123"

См. также: tolower.

: native_bytes = unicode2native (utf8_str, codepage)
: native_bytes = unicode2native (utf8_str)

Преобразует строку UTF-8 utf8_str в поток байтов с использованием codepage.

Вектор символов utf8_str преобразуется в поток байтов native_bytes с использованием кодовой страницы, заданной codepage. Строка codepage должна быть идентификатором корректной кодовой страницы. Примеры допустимых кодовых страниц: "ISO-8859-1", "Shift-JIS", или "UTF-16". Список поддерживаемых кодовых страниц см. на странице https://www.gnu.org/software/libiconv. Если codepage опущена или пуста, используется системная кодовая страница по умолчанию.

Если какой-либо символ не может быть сопоставлен с кодовой страницей codepage, он заменяется соответствующей подстановкой для этой кодовой страницы.

См. также: native2unicode.

: utf8_str = native2unicode (native_bytes, codepage)
: utf8_str = native2unicode (native_bytes)

Преобразует поток байтов native_bytes в UTF-8 с использованием codepage.

Числа в векторе native_bytes округляются и обрезаются до целых чисел от 0 до 255. Этот поток байтов затем отображается на кодовую страницу, заданную строкой codepage, и возвращается в строке utf8_str. Octave использует UTF-8 в качестве внутренней кодировки. Строка codepage должна быть идентификатором корректной кодовой страницы. Примеры допустимых кодовых страниц: "ISO-8859-1", "Shift-JIS", или "UTF-16". Список поддерживаемых кодовых страниц см. на странице https://www.gnu.org/software/libiconv. Если codepage опущена или пуста, используется системная кодовая страница по умолчанию.

Если native_bytes — это вектор строк, он возвращается как есть.

См. также: unicode2native.

: do_string_escapes (string)

Преобразует последовательности экранирования в string в соответствующие символы.

Последовательности экранирования начинаются с ведущей обратной косой черты ('\') и следуют за 1–3 символами (например, "\n" => новая строка).

См. также: undo_string_escapes.

: undo_string_escapes (s)

Преобразует специальные символы в строках обратно в их экранированные формы.

Например, выражение

bell = "\a";

присваивает значение символа оповещения (управляющий символ G, код ASCII 7) переменной строки bell. Если эта строка выводится на печать, система подаст звуковой сигнал (если это возможно). Это обычно желаемый результат. Однако иногда полезно иметь возможность выводить исходное представление строки, заменяя специальные символы их последовательностями экранирования. Например,

octave:13> undo_string_escapes (bell)
ans = \a

заменяет непечатаемый символ оповещения его печатаемым представлением.

См. также: do_string_escapes.

© 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/String-Conversions.html

Spec-Zone.ru

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