Spec-Zone.ru › Octave 8

6.3.4 Массивы ячеек строк

Одно из распространённых применений массивов ячеек — хранение нескольких строк в одной переменной. Также можно хранить несколько строк в матрице символов, сделав каждую строку строкой. Однако это приводит к проблеме, что все строки должны быть одинаковой длины. Поэтому рекомендуется использовать массивы ячеек для хранения нескольких строк. Для случаев, когда требуется представление матрицы символов для операции, существуют несколько функций, преобразующих массив ячеек строк в матрицу символов и обратно. char и strvcat преобразуют массивы ячеек в матрицу символов (см. Конкатенация строк), в то время как функция cellstr преобразует матрицу символов в массив ячеек строк:

a = ["hello"; "world"];
c = cellstr (a)
     ⇒ c =
         {
           [1,1] = hello
           [2,1] = world
         }
: cstr = cellstr (strmat) ¶

Создаёт новый объект массива ячеек из элементов массива строк strmat.

Каждая строка strmat становится элементом cstr. Любые хвостовые пробелы в строке удаляются перед преобразованием.

Для преобразования обратно из cellstr в матрицу символов используйте char.

См. также: cell, char.

Ещё одно преимущество использования массивов ячеек для хранения нескольких строк состоит в том, что большинство функций для работы со строками, включённых в Octave, поддерживают это представление. Например, можно сравнить одну строку со многими другими, используя функцию strcmp. Если один из аргументов этой функции — строка, а другой — массив ячеек строк, каждый элемент массива ячеек будет сравниваться с аргументом-строкой:

c = {"hello", "world"};
strcmp ("hello", c)
     ⇒ ans =
        1   0

Следующие функции для работы со строками поддерживают массивы ячеек строк: char, strvcat, strcat (см. Конкатенация строк), strcmp, strncmp, strcmpi, strncmpi (см. Поиск в строках), str2double, deblank, strtrim, strtrunc, strfind, strmatch, , regexp, regexpi (см. Операции со строками) и str2double (см. Преобразование строк).

Функция iscellstr может использоваться для проверки, является ли объект массивом ячеек строк.

: tf = iscellstr (cell) ¶

Возвращает true, если каждый элемент массива ячеек cell является строкой символов.

См. также: ischar, isstring.

© 1996–2023 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/v8.1.0/Cell-Arrays-of-Strings.html

Spec-Zone.ru

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