cell

Описание

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

Создание

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

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-by- n массив ячеек из пустых матриц.

пример

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

пример

C = cell(sz) возвращает массив ячеек из пустых матриц, причем вектор size 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. Для получения дополнительной информации смотрите:

Примеры

свернуть все

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

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

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