本文说明了访问存储于元胞数组的元胞中的数组数据的方法。
创建一个样本元胞数组。
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
{1x3 double} {1x3 double}
{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×5 数值数组。使用圆点表示法和圆括号访问该字段的第 5 行和第 1 列中的元素。
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'