ячейка

Описание

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

Создание

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

C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}}
C = 2x3 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)
C = cell(sz1,...,szN)
C = cell(sz)
D = cell(obj)

Описание

пример

C = cell(n) возвращает n-by-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 отрицательно, это эквивалентно n = 0.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

  • Если размер какой-либо размерности отрицателен, то это обработано как 0.

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

Типы данных: удвойтесь | единственный | 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 пустых матриц.

Типы данных: удвойтесь | единственный | 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 = 1x2 cell array
    {'2017-08-16'}    {1x3 double}

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

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

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

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

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

C{1,2}
ans = 1×3

    56    67    78

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

C = cell(3)
C = 3x3 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 = 3x2 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} = [];

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

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

Была ли эта тема полезной?