Доступ к данным в массиве ячеек

Этот пример показывает, как читать и записать данные к и от массива ячеек.

Создайте 2 3 массив ячеек текста и числовых данных.

C = {'one', 'two', 'three'; 
     1, 2, 3}
C = 2x3 cell array
    {'one'}    {'two'}    {'three'}
    {[  1]}    {[  2]}    {[    3]}

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

Индексация ячейки со сглаженными круглыми скобками, ()

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

upperLeft = C(1:2,1:2)
upperLeft = 2x2 cell array
    {'one'}    {'two'}
    {[  1]}    {[  2]}

Обновите наборы ячеек, заменив их на то же количество ячеек. Например, замените ячейки в первой строке C с эквивалентного размера (1 3) массив ячеек.

C(1,1:3) = {'first','second','third'}
C = 2x3 cell array
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[    3]}

Если ячейки в вашем массиве содержат числовые данные, можно преобразовать ячейки в числовой массив с помощью функции cell2mat.

numericCells = C(2,1:3)
numericCells = 1x3 cell array
    {[1]}    {[2]}    {[3]}

numericVector = cell2mat(numericCells)
numericVector = 1×3

     1     2     3

numericCells является 1 3 массивом ячеек, но numericVector 1 3 массив типа double.

Довольный индексация с фигурными скобками, {}

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

last = C{2,3}
last = 3

last является числовой переменной типа double, потому что ячейка содержит значение double.

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

C{2,3} = 300
C = 2x3 cell array
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[  300]}

Можно получить доступ к содержимому нескольких ячеек путем индексации с фигурными скобками. MATLAB® возвращает содержимое ячеек как список, разделенный запятыми. Поскольку каждая ячейка может содержать другой тип данных, вы не можете присвоить этот список одной переменной. Однако можно присвоить список тому же количеству переменных как ячейки. MATLAB® присваивает переменным в порядке следования столбцов.

Присвойте содержимое четырех ячеек C к четырем переменным.

[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 
'first'
r2c1 = 1
r1c2 = 
'second'
r2c2 = 2

Если каждая ячейка содержит тот же тип данных, можно создать одну переменную путем применения оператора конкатенации массивов, [], к списку, разделенному запятыми.

Конкатенация содержимого второй строки в числовой массив.

nums = [C{2,:}]
nums = 1×3

     1     2   300

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте