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

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

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

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

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

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

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

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

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

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

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

numericCells = C(2,1:3)
numericCells=1×3 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=2×3 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

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

|

Похожие темы