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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

C(1,:)
ans=1×2 cell array
    {'2017-08-16'}    {1x3 double}

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

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
Для просмотра документации необходимо авторизоваться на сайте