Этот пример показывает методы доступа к данным в массивах, хранящихся в камерах из массивов ячеек.
Создайте образец массива ячеек.
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'