Этот пример показывает методы для доступа к данным в массивах, сохраненных в ячейках массивов ячеек.
Создайте демонстрационный массив ячеек.
myNum = [1, 2, 3]; myCell = {'one', 'two'}; myStruct.Field1 = ones(3); myStruct.Field2 = 5*ones(5); C = {myNum, 100*myNum; myCell, myStruct}
C=2×2 cell array
{[ 1 2 3]} {[100 200 300]}
{1x2 cell} {1x1 struct }
Доступ к полному содержимому конкретной ячейки с помощью фигурных скобок, {}
. Например, возвратите числовой вектор в ячейку, которая содержит его.
C{1,2}
ans = 1×3
100 200 300
Доступ отделяется содержимого ячейки путем добавления индексов, использования синтаксиса, который совпадает с типом данных содержимого.
Заключите числовые индексы в сглаженные круглые скобки. Например, C{1,1}
возвращает 1 3 числовой вектор, [1 2 3]
. Доступ к второму элементу того вектора с помощью сглаженных круглых скобок.
C{1,1}(1,2)
ans = 2
Заключите индексы массива ячеек в фигурные скобки. Например, C{2,1}
возвращает массив ячеек, {'one','two'}
. Доступ к содержимому второй ячейки в том массиве ячеек с помощью фигурных скобок.
C{2,1}{1,2}
ans = 'two'
Обратитесь к полям массива структур с записью через точку и индексу в массив как описано для числовых массивов и массивов ячеек. Например, C{2,2}
возвращает массив структур, где Field2
содержит числовой массив 5 на 5 пятерок. Доступ к элементу в пятой строке и первом столбце того поля с помощью записи через точку и сглаженных круглых скобок.
C{2,2}.Field2(5,1)
ans = 5
Можно вложить любое количество ячейки и массивов структур. Например, добавьте вложенные ячейки и структуры к C
.
C{2,1}{2,2} = {pi, eps}; C{2,2}.Field3 = struct('NestedField1', rand(3), ... 'NestedField2', magic(4), ... 'NestedField3', {{'text'; 'more text'}} );
Доступ к частям новых данных с помощью фигурных скобок, сглаживайте круглые скобки или запись через точку.
copy_pi = C{2,1}{2,2}{1,1}
copy_pi = 3.1416
part_magic = C{2,2}.Field3.NestedField2(1:2,1:2)
part_magic = 2×2
16 2
5 11
nested_cell = C{2,2}.Field3.NestedField3{2,1}
nested_cell = 'more text'