exponenta event banner

клетка

Описание

Массив ячеек - это тип данных с индексированными контейнерами данных, называемыми ячейками, где каждая ячейка может содержать любой тип данных. Массивы ячеек обычно содержат либо списки текста, либо комбинации текста и чисел, либо числовые массивы различных размеров. Обратитесь к наборам ячеек, заключив индексы в гладкие круглые скобки, (). Доступ к содержимому ячеек путем индексирования фигурными скобками, {}.

Создание

При наличии данных для ввода в массив ячеек создайте массив с помощью оператора построения массива ячеек. {}.

C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}}
C=2×3 cell array
    {[   1]}    {[          2]}    {[     3]}
    {'text'}    {5x10x2 double}    {3x1 cell}

Вы также можете использовать {} для создания пустого массива ячеек 0 на 0.

C = {}
C =

  0x0 empty cell array

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

Вы можете использовать cell для предварительного назначения массива ячеек, которому данные будут назначены позже. cell также преобразует определенные типы структур данных Java ®, .NET и Python ® в массивы ячеек эквивалентных объектов MATLAB ®.

Описание

пример

C = cell(n) возвращает nоколо-n массив ячеек пустых матриц.

пример

C = cell(sz1,...,szN) возвращает sz1-by-... -by-szN массив ячеек пустых матриц, где sz1,...,szN укажите размер каждого размера. Например, cell(2,3) возвращает массив ячеек 2 на 3.

пример

C = cell(sz) возвращает массив ячеек пустых матриц, где вектор размера sz определяет size(C). Например, cell([2 3]) возвращает массив ячеек 2 на 3.

D = cell(obj) преобразует массив Java, .NET System.String или System.Object массив или последовательность Python в массиве ячеек MATLAB.

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

развернуть все

Размер массива квадратных ячеек, заданный как целое число.

  • Если n является 0, то C является пустым массивом ячеек.

  • Если n отрицательный, то он рассматривается как 0.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размеры массива ячеек, заданные как целочисленные значения.

  • Если размер любого размера равен 0, то C является пустым массивом ячеек.

  • Если размер любого размера отрицательный, то он обрабатывается как 0.

  • За пределами второго измерения cell игнорирует конечные размеры размером 1. Например, cell(3,1,1,1) создает массив ячеек 3 на 1 из пустых матриц.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер, заданный как вектор строки целых чисел. Каждый элемент sz указывает размер соответствующего размера.

  • Если размер любого размера равен 0, то C является пустым массивом ячеек.

  • Если размер любого размера отрицательный, то он обрабатывается как 0.

  • За пределами второго измерения cell игнорирует конечные размеры размером 1. Например, cell([3 1 1 1]) создает массив ячеек 3 на 1 из пустых матриц.

Пример: sz = [2 3 4] создает массив ячеек 2 на 3 на 4 пустых матриц.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Входной массив, указанный как:

  • Массив или объект Java

  • Массив .NET типа System.String или System.Object

  • Тип последовательности Python

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

развернуть все

Выходной массив, возвращаемый как массив ячеек. Каждая ячейка содержит пустой массив типа 0 на 0 double.

Преобразованный массив, возвращаемый как массив ячеек.

Каждая ячейка содержит объект MATLAB с типом, ближайшим к соответствующему типу Java, .NET или Python. Дополнительные сведения см. в разделе:

Примеры

свернуть все

Если связанные части данных имеют различные типы данных, их можно сохранить вместе в массиве ячеек. Каждая ячейка содержит часть данных. Для ссылки на элементы массива ячеек используйте индексирование массива. Можно индексировать в массив ячеек, используя гладкие круглые скобки. ()и в содержимое клеток с помощью фигурных скобок, {}.

Создайте массив ячеек, содержащий несколько показаний температуры, снятых на заданную дату. Укажите дату как символьный вектор, а температуру - как массив двойников. Чтобы сохранить эти части данных в массиве ячеек, заключите их в фигурные скобки.

C = {'2017-08-16',[56 67 78]}
C=1×2 cell array
    {'2017-08-16'}    {[56 67 78]}

Добавление показаний для различных дат в массив ячеек. Одним из способов добавления ячеек является расширение массива ячеек путем назначения, так же как можно расширить обычный массив.

C(2,:) = {'2017-08-17',[58 69 79]};
C(3,:) = {'2017-08-18',[60 68 81]}
C=3×2 cell array
    {'2017-08-16'}    {[56 67 78]}
    {'2017-08-17'}    {[58 69 79]}
    {'2017-08-18'}    {[60 68 81]}

Индексировать в первую строку C. При индексировании с гладкими скобками ()в результате получается массив ячеек, который является подмножеством массива ячеек.

C(1,:)
ans=1×2 cell array
    {'2017-08-16'}    {[56 67 78]}

Индексировать в содержимое ячейки. При индексировании фигурными скобками {}, результатом является фрагмент данных, который содержится в указанной ячейке.

C{1,2}
ans = 1×3

    56    67    78

Создайте массив ячеек 3 на 3 пустых матриц.

C = cell(3)
C=3×3 cell array
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}

Создайте массив ячеек 3 на 4 на 2 из пустых матриц.

C = cell(3,4,2);
size(C)
ans = 1×3

     3     4     2

Создайте массив ячеек из пустых матриц того же размера, что и существующий массив.

A = [7 9; 2 1; 8 3];
sz = size(A);
C = cell(sz)
C=3×2 cell array
    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}

Обычно две предыдущие строки кода объединяются в одну строку.

C = cell(size(A));

Совет

  • Создание массива ячеек пустых матриц с помощью cell эквивалентна назначению пустой матрицы последнему индексу нового массива ячеек. Например, эти два оператора эквивалентны:

    C = cell(3,4,2);
    C{3,4,2} = [];

Вопросы совместимости

развернуть все

В R2019a изменилось поведение

Расширенные возможности

.
Представлен до R2006a